О! Как раз то, что мне надо. Спасибо!! А как на счет красивого вывода, хотя бы текстового с уровнями? К примеру: X1|-----------| __X2|---------| ____X3|-------| __X4|---------|
В общем так или иначе, спасибо за функции!
Altair
14.04.2004 20:33
Цитата
В общем так или иначе, спасибо за функции!
Спасибо! Стараюсь! Красивый вывод БУДЕТ!
HelpAusHeaven
14.04.2004 21: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
15.04.2004 3:21
Цитата(Oleg_Z @ 14.04.04 16:33)
Спасибо! Стараюсь! Красивый вывод БУДЕТ!
За ранее спасибо!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.