null amp; amp; Data.Right == null)
{-;// Зробити поточним лівого сина
}
else if (Data.Left == null amp; amp; Data.Right!=null)
{. Push (Data.Right);=true;
}
{= true;
}
} (Stack.Count gt; 0)
{= false;
}
}//while (Stop)
}//if (Якщо коріння не порожній)
else//Пошук стався невдало
{( Відсутня корінь дерева );
}
} (Exceptionerror)
{. Show (error.Message + nНажміте ОК щоб продовжити raquo ;, Помилка обходу дерева raquo ;, MessageBoxButtons.OK, MessageBoxIcon.Error);
};// Повернути пусте значення, тому пошук стався невдало
}//Findvoid Shift (string Search, string New)//Заміна
{(Find_v2 (Search)!=null)
{ lt; T gt; Data=Find_v2 (Search);
(Data.Value as Sportsman) .FIO_OutPut=New;=new StreamReader (Path, Encoding.Default); str;=Read.ReadToEnd ();
//str=str.Replace (Search, New); Regular=new Regex (Search);=Regular.Replace (str, New) ;. Close (); Write=new StreamWriter (Path , false, Encoding.Default) ;. Write (str) ;. Close ();
}
{. Show ( Даного спортсмена не існує raquo ;, Помилка зміни raquo ;, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
} void Delete (string Search)
{
{(Find_v2 (Search)!=null)
{ lt; T gt; Data=Find_v2 (Search);
if (Data.Left == null amp; amp; Data.Right == null)//ВИПАДОК 1: Відсутні обидва сини (у видаляється елемента)
{(Data.Parent.Left!=null amp; amp; (Data.ValueasSportsman) .CompareTo (Data.Parent.Left.Value) == 0)//Визначаємо, для батька (видаляється елемента ) ми лівий син?
{. Parent.Left=null;
} (Data.Parent.Right!=null amp; amp; (Data.ValueasSportsman) .CompareTo (Data.Parent.Right.Value) == 0)//Визначаємо, для (видаляється елемента) батька ми правий син?
{. Parent.Right=null;
}. Value=default (T);=null;
} if (Data.Left!=null amp; amp; Data.Right == null)//ВИПАДОК 2: Є тільки лівий син (у видаляється елемента)
{ lt; T gt; Stock=Data.Left;// Stock - запас
Data.Left=null;// Видалення зв'язку між батьком (поточним вузлом) і лівим сином
if (Data.Parent!=null)
{. Parent=Data.Parent; (Data.Parent.Left!=null amp; amp; (Data.Value as Sportsman) .CompareTo (Data.Parent.Left.Value) == 0 )//Визначаємо, для батька (видаляється елемента) ми лівий син?
{. Parent.Left=Stock;
} if (Data.Parent.Right!=null amp; amp; (Data.Value as Sportsman) .CompareTo (Data.Parent.Right.Value) == 0)//Визначаємо, для (видаляється елемента) батька ми правий син?
{. Parent.Right=Stock;
}=null;// Очищення пам'яті
}
{. Value=Stock.Value;
}
} if (Data.Left == null amp; amp; Data.Right!=null)//ВИПАДОК 2.1: Є тільки правий син (у видаляється елемента)
{ lt; T gt; Stock=Data.Right;// Stock # 151; запас
Data.Right=null;// Видалення зв'язку між батьком (поточним вузлом) і правим сином
if (Data.Parent!=null)
{. Parent=Data.Parent; (Data.Parent.Left!=null amp; amp; (Data.Value as Sportsman) .CompareTo (Data.Parent.Left.Value) == 0 )//Визначаємо, для батька (видаляється елемента) ми лівий син?
{. Parent.Left=Stock;
} if (Data.Parent.Right!=null amp; amp; (Data.Value as Sportsman) .CompareTo (Data.Parent.Right.Value) == 0)//Визначаємо, для (видаляється елемента) батька ми правий син?
{. Parent.Right=Stock;
}=null;// Очищення пам'яті
}
{. Value=Stock.Value;
}
} if (Data.Left!=null amp; amp; Data.Right!=null)//ВИПАДОК 3: Є обидва сини (у видаляється елемента)
{ lt; T gt; Data2=Max (Data.Left);// Data2 - максимальний елемент з лівого піддерева (Data2.Left == null amp; amp; Data2.Right == null)//Якщо Data2 (максимальний з лівого під...