p>
/ / / В Іншому випадка повертає нуль, Що означає прісутність такого ж елемент в дереві
/ / /
/ / / Ім'я Вузли
/ / / Значення Вузли
/ / / Повертає посилання на агентство вузол, ЯКЩО ВІН БУВ вдалину Доданий.
/ / / Если такий Вже БУВ у наявності, то повертає null
public TTreeNode insert (string name, double d)
{node=new TTreeNode (name, d);
{(root == null)=node; (node, ref root);
_count + +; node;
} (Exception)
{null;
}
}
/ / Поиск Вузли за ім'ям. Если вузол | Полтава - повертає посилання на агентство Останній вузол
/ / та йо попередніків. У Іншому випадка повертає null.
private TTreeNode findParent (string name, ref TTreeNode parent)
{np=root;=null; cmp; (np!=null)
{= String.Compare (name, np.name); (cmp == 0) / / нашел! np; (cmp <0)
{= np;=np.left;
}
{= np;=np.right;
}
} null;// Повертає null щоб віявіті помилки
}
/ / /
/ / / Знаходження наступніків Вузли
/ / /
/ / / Ключ-ім я для поиска
/ / / Повертає ім я попередники ЯКЩО поиск на вдалий
/ / / Повертає посилання на агентство вузол, ЯКЩО такий | Полтава
public TTreeNode findSuccessor (TTreeNode startNode, ref TTreeNode parent)
{= startNode;=startNode.right; (startNode.left!=null)
{= startNode;=startNode.left;
} startNode;
}
/ / /
/ / / видалений Вузли.
/ / /
/ / / Ім я Вузли, что відаляється
public void delete (string key)
{parent=null;
/ / Спочатку Знайдемо сам вузол, абі віділіті его попередніків
TTreeNode nodeToDelete=findParent (key, ref parent); (nodeToDelete == null) new Exception («Unable to delete node:» + key.ToString ());// Неможливо найти вузол
/ / Если це кінцева гілка, то просто анулюємо ПОСИЛАННЯ попередники
if ((nodeToDelete.left == null) && (nodeToDelete.right == null))
{(parent == null)
{= null;;
}
/ / шукаємо, ЯКЩО ліва чі права гілка пов язані з іншімі
/ / попередниками и належноє всітавляємо null
if (parent.left == nodeToDelete)
parent.left=null;. right=null;