program zadatak;
type
vozac = record
ime:string[30];
tim:string[20];
pobjede:integer;
treninzi:integer
end;
drv=^cvor;
cvor = record
info:vozac;
left, right:drv
end;
var
v1,v2,v3:vozac;
z1,t1,t2,t3:drv;
i,tt,x,y:integer;
s1,s2:string;
procedure PrintInfo(z:vozac);
begin
end;
function NoviInf(x,y:string; po,t:integer):drv;
var p:drv;
begin
new(p);
p^.info.ime:=x;
p^.info.tim:=y;
p^.info.pobjede:=po;
p^.info.treninzi:=t;
NoviInf:=p
end;
procedure Dodaj(var l:drv; v:vozac);
var n:drv;
begin
if(l = nil) then
begin
new(n);
n^.info:=v;
n^.left:=nil;
n^.right:=nil;
l:=n;
end
else
begin
if(v.pobjede<l^.info.pobjede) then
Dodaj(l^.left,v)
else
Dodaj(l^.right,v);
end;
end;
{function nadji(var l:drv; ime:string):drv;
var p,q:drv;
begin
q:=nil;
p:=l;
while((p<>nil) and (p^.info.ime<>ime)) do
begin
if(ime<>p^.info.ime) then
q:=p^.left;
if(ime<>q^.info.ime) then
p:=p^.right;
if(ime<>p^.info.ime) then
p:=q;
end;
nadji:=p;
end;
}
procedure Brisi(var l:drv; ime:string);
var v:vozac; p,q,z:drv;
begin
q:=nil;
p:=l;
z:=p;
while((p<>nil) and (p^.info.ime<>ime)) do
begin
if(ime<>p^.info.ime) then
q:=p^.left;
if(ime<>q^.info.ime) then
p:=p^.right;
if(ime<>p^.info.ime) then
p:=q;
end;
if(p^.left<>NIl) then
z:=p^.left
else
z:=p^.right;
dispose(p);
end;
procedure Stampaj(l:drv; v:integer);
var vo:drv;
begin
if(l<>nil) then
if(l^.info.pobjede>v) then
begin
Stampaj(l^.right,v);
writeln(l^.info.ime, ' ',l^.info.pobjede);
Stampaj(l^.left,v);
end;
end;
BEGIN
s1:='a';
s2:='b';
t1:=nil;
for i:=1 to 16 do
begin
tt:=random(25);
z1:=noviinf(s1,s2,tt,tt);
dodaj(t1,v1);
end;
readln(x);
writeln('Stampa drveta: ');
stampaj(t1,y);
readln;
END.
{Evo, pomagaj ispravljaj

}