예제 #1
0
 /// <summary>
 /// Вставляет значение в определённый узел дерева
 /// </summary>
 /// <param name="data">Значение</param>
 /// <param name="node">Целевой узел для вставки</param>
 /// <param name="parent">Родительский узел</param>
 private void Insert(Class_Identificator data, BinaryTree node, BinaryTree parent)
 {
     if (node.Data == null || node.Data == data)
     {
         node.Data   = data;
         node.Parent = parent;
         return;
     }
     if (node.Data.HashCode > data.HashCode)
     {
         if (node.Left == null)
         {
             node.Left = new BinaryTree();
         }
         Insert(data, node.Left, node);
     }
     else
     {
         if (node.Right == null)
         {
             node.Right = new BinaryTree();
         }
         Insert(data, node.Right, node);
     }
 }
예제 #2
0
 }                                      // родитель у вершины поддерева
 /// <summary>
 /// Вставляет целочисленное значение в дерево
 /// </summary>
 /// <param name="data">Значение, которое добавится в дерево</param>
 ///
 public void Insert(Class_Identificator data)
 {
     if (Data == null || Data == data)
     {
         Data = data;
         return;
     }
     if (Data.HashCode > data.HashCode)
     {
         if (Left == null)
         {
             Left = new BinaryTree();
         }
         Insert(data, Left, this);
     }
     else
     {
         if (Right == null)
         {
             Right = new BinaryTree();
         }
         Insert(data, Right, this);
     }
 }