Написать функцию, которая находит наименьший элемент дерева
Категория: Delphi/Pascal
2012-10-16 15:51:12
Написать функцию, которая находит наименьший элемент дерева.
Написать процедуру, которая выводит на экран (по одному разу) все вершины дерева.
code: #delphi
type PItem = ^TItem; TItem = packed record Left :PItem; Right :PItem; Data :Integer; end; ... // функция для поиска минимума function FindMin(where:PItem):PItem; var lMin:Integer; procedure DoFind(p:PItem); begin if p<>nil then begin if p^.Data<lMin then begin lMin := p^.Data; result := p; end; DoFind(p^.Left); DoFind(p^.Right); end; end; begin if where=nil then result := nil else begin lMin := where^.Data; result := where; DoFind(where); end; end; ... //процедура для вывода дерева procedure PrintTree(pTree:PItem); begin if pTree<>nil then begin Memo1.Lines.Add(IntToStr(pTree^.Data)); //куда выводить-то? PrintTree(pTree^.Left); PrintTree(pTree^.Right); end; end; ... //создаем дерево pTree PrintTree(pTree); //распечатали pMin := FindMin(pTree); //ищем... if pMin=nil then begin //дерево пустое end else begin //нашли минимум pMin end;
автор: Vovan-VE
Поделиться: