tify"> _count -;;
}
/ / Одне Із ПОСИЛАННЯ Вузли null, тоді
/ / відаляємо вузол и віставляємо ненульове посилання на агентство его місце
if (nodeToDelete.left == null)
{
/ / Спеціальна Умова, ящо це корінь
if (parent == null)
{= nodeToDelete.right;;
} (parent.left == nodeToDelete). right=nodeToDelete.right;. left=nodeToDelete.right;=null;// Очищення видалений Вузли
_count -;;
}
/ / Одне Із ПОСИЛАННЯ Вузли null, тоді
/ / відаляємо вузол и віставляємо ненульове посилання на агентство его місце
if (nodeToDelete.right == null)
{
/ / Спеціальна Умова, ящо це корінь
if (parent == null)
{= nodeToDelete.left;;
} (parent.left == nodeToDelete). left=nodeToDelete.left;. right=nodeToDelete.left;=null;// Очищення видалений Вузли
_count -;;
}
/ / Обидва ПОСИЛАННЯ мают значення, а тоді шукаємо наступником и
/ / заміняємо видалений вузол наступником
/ / цею попередники становится попередники наступником
TTreeNode successor=findSuccessor (nodeToDelete, ref parent);
/ / Зробимо Тимчасова копію Вузли-наступником
TTreeNode tmp=new TTreeNode (successor.name, successor.value);
/ / Знайдемо, на якові гілку наступником вказує попередники
/ / і відалімо наступником
if (parent.left == successor). left=null;. right=null;
/ / Повертаємо назад Значення наступніків
nodeToDelete.name=tmp.name;. value=tmp.value;
_count -;
}
/ / Функція схематичного малювання дерева
private string drawNode (TTreeNode node)
{(node ??== null) «empty»; ((node.left == null) && (node.right == null)) node.name; ((node. left!=null) && (node.right == null)) node.name + «(» + drawNode (node.left) + «, _)»; ((node.right!= null) && (node.left == null)) node.name + «(_,» + drawNode (node.right) + «)»; node.name + «(» + drawNode (node.left) + «,» + drawNode (node.right) + «)»;
}
/ / /
/ / / виводу вигляд дерева строкою, что віглядає як
/ / / 50 (40 (30 (20, 35), 45 (44, 46)), 60)
/ / /
/ / / Повертає вигляд дерева string drawTree ()
{drawNode (root);
}
}
}
Додаток В
Структурний вигляд згенерованої COM-програми
; == ПАРАМЕТРИ COM-файл ==
. model tiny
. code
org 100h
<...