public void insert_value(valType val) { // добавить значение в дерево if (val.Equals(_val)) { _cnt++; return; } if (val.CompareTo(_val) < 0) { if (_lchaild == null) { _lchaild = new BTnode <valType>(val); } else { _lchaild.insert_value(val); } } else { if (_rchaild == null) { _rchaild = new BTnode <valType>(val); } else { _rchaild.insert_value(val); } } } // insert_value
public BTnode <valType> _rchaild; // ссылка на правый потомок public BTnode(valType val) { // конструктор добавляет "лист" _val = val; _cnt = 1; _lchaild = _rchaild = null; }
} // конструктор public void insert(elemType elem) { // добавить значение или узел if (_root == null) { _root = new BTnode <elemType>(elem); } else { _root.insert_value(elem); } }
void preorder(BTnode <elemType> pt) { if (pt != null) { Console.Write(pt._val + " "); if (pt._lchaild != null) { preorder(pt._lchaild); } if (pt._rchaild != null) { preorder(pt._rchaild); } } }
BTnode <elemType> _root; // корень дерева public BinaryTree() { _root = null; } // конструктор