У меня есть только поиск первого мин. элемента, но тут проще всё и алгоритм другой - не знаю, надо ли выкладывать, но всё же:
Код
{$A+,B+,D+,E+,F+,G+,I+,L+,N+,O+,P+,Q+,R+,S+,T+,V+,X+}
{$M 16384,0,655360}
program tree;
type pt=^node;
node=Record
data:integer;
left,right:pt;
end;
var t:pt;
x,p:integer;
min:integer;
procedure insert_tree(var t:pt; x:integer);
begin
if t=nil then begin
new(t);
with t^ do begin
data:=x;
left:=nil;
right:=nil;
end
end
else if x<t^.data then insert_tree(t^.left,x)
else insert_tree(t^.right,x);
end;
procedure search(t:pt;var m:integer);
var i,j:integer;
begin
if t<>nil then
if t^.left<>nil then search(t^.left,m)
else m:=t^.data;
end;
procedure print(t:pt; h:integer);
var i:integer;
begin
if t<>nil then with t^ do begin
print(left,h+5);
for i:=1 to h do write(' ');
writeln(data:3);
print(right,h+5);
end;
end;
BEGIN
write('x=');
readln(x);
repeat
insert_tree(t,x);
write('x=');
read(x);
until Eof;
write('tree: ');
print(t,1);
search(t,min);
writeln('min=',min);
readln;
readln;
END.