ystem; System.Collections; SysBio.dataStructures
{
/ / Оголошення гілок дереваclass TTreeNode
{string name; double value; TTreeNode left, right;
/ / Конструктор создания одінарної гілкіTTreeNode (string name, double d)
{. name=name;=d;=null;=null;
}
}
/ / Бінарне дерево, власною персоноюclass TBinarySTree
{
/ / Доступні методи:
/ / count ()
/ / clear ()
/ / insert ()
/ / delete ()
/ / findSymbol ()
/ / TTreeNode root;// Вказує на корінь дереваint _count=0; TBinarySTree ()
{= null;
_count=0;
}
/ / Знищення бінарного дерева або під-дереваvoid killTree (ref TTreeNode p)
{(p!=null)
{(ref p.left); (ref p.right);=null;
}
}
/ / /
/ / / Очищення ЕЛЕМЕНТІВ дерева.
/ / / void clear ()
{(ref root);
_count=0;
}
/ / /
/ / / Повертає кількість гілок в дереві
/ / /
/ / / Кількість гілок бінарного дерева int count ()
{_count;
}
/ / /
/ / / знаходится имя в дереві. Повертає звернення
/ / / ЯКЩО символ знайдення або null при вінікненні помилки.
/ / /
/ / / Ім'я Гілки, якові нужно найти
/ / / Повертає null Якщо не Було | Полтава Такої Гілки, в Іншому випадка повертає посилання на агентство гілку TTreeNode findSymbol (string name)
{np=root; cmp; (np!=null)
{= String.Compare (name, np.name); (cmp == 0) / / Знайшов! np; (cmp <0)=np.left;=np.right;
} null;// Повертаюсь null щоб ідентіфікуваті помилки
}
/ / знаходится пустий слот в дереві и додає в потрібне місце нову гілку
private void add (TTreeNode node, ref TTreeNode tree)
{(tree == null)=node;
{
/ / Если | Полтава гілку з таким ж ім'ям
/ / тоді це копія и мі не можемо продовжуваті
int comparison=String.Compare (node.name, tree.name); (comparison == 0) new Exception (); (comparison <0)
{(node, ref tree.left);
}
{(node, ref tree.right);
}
}
}
/ / /
/ / / Додає елемент до дерева ЯКЩО ВІН новий та повертає звернення до нього