Написать функцию, которая находит наименьший элемент дерева.
Написать процедуру, которая выводит на экран (по одному разу) все вершины дерева.
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;