О! Как раз то, что мне надо. Спасибо!! А как на счет красивого вывода, хотя бы текстового с уровнями? К примеру: X1|-----------| __X2|---------| ____X3|-------| __X4|---------|
В общем так или иначе, спасибо за функции!
Altair
14.04.2004 16:33
Цитата
В общем так или иначе, спасибо за функции!
Спасибо! Стараюсь! Красивый вывод БУДЕТ!
HelpAusHeaven
14.04.2004 17:16
type TTree=^TNode; TNode = record Int : Integer; Left, Right : TTree; end;
var MyTree : TTree;
procedure Add(var Tree: TTree; i: integer); begin if Tree <> nil then begin if Tree.Int < i then Add(Tree.Right,i) else if Tree.Int > i then Add(Tree.Left,i) end else begin new(Tree); Tree.Int:=i; Tree.Left:=nil; Tree.Right:=nil; end end;
function TForm1.Find(var Tree: TTree; i: integer):boolean; begin if Tree <> nil then begin if Tree.Int < i then Find(Tree.Right,i) else if Tree.Int > i then Find(Tree.Left,i) else if Tree.Int = i then ShowMessage('I found it!'); end else ShowMessage('Tree is empty:('); end;
При выполнении этого кода у меня в "поиске" выдается сообщение, что дерево пустое... Оно пустое, скорее всего, из-за того, что указатель MyTree стоит уже не на вершине дерева, а на одном из "листов" дерева (одной из конечных точек дерева)... Как мне поправить эту ситуацию? Заводить ещё одну переменную для хранения адреса памяти вершины дерева?? Или есть другой способ...??
HelpAusHeaven
14.04.2004 23:21
Цитата(Oleg_Z @ 14.04.04 16:33)
Спасибо! Стараюсь! Красивый вывод БУДЕТ!
За ранее спасибо!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.