//3) type TData = real; PPolozka =^TPolozka; TPolozka = record Data = TData; Dalsi=PPolozka; end; TPolozky=PPolozka; var prvni,seznam:TPolozky; procedure Vloz(var Aseznam:TPolozky;Hodnota:TData); var APolozka:PPolozka; begin New(APolozka); APolozka^.Dalsi:=ASeznam^.Dalsi; !!! ASeznam muze byt nil if APolozka^.Dalsi = nil then APolozka^.Dalsi:=prvni; APolozka^.Data:=Hodnota; ASeznam^.Dasli:=APolozka; end; //4) unit Strom; interface type TData=pointer; PTree = ^TTree; TTree = record Data:TData; Levy,pravy:PTree; end; TStrom = PTree; TCompare(Polozka1,polozka2:pointer):boolean; !!! syntax procedure Init(var Str:TStrom); procedure Vloz(var Nova:TStrom;Polozka:TData;Func: TCompare); implementation procedure Insert(var Str:TStrom); begin Str:=nil; end; procedure Vloz(var Nova:TStrom;Polozka:TData;Func:TCompare); var AFunction:TCompare; begin @AFunction:=@Func; !!! syntax if Nova=nil then begin New(Nova); Nova^.Data:=Polozka; Nova^.levy:=nil; nova^.pravy:=nil; end else if AFunctin (Nova^.data,polozka) then vloz(nova^.levy,polozka,Func) else vloz(nova^.pravy,polozka,Func); end; //5) unit UspPole; interface type TData = Pointer; !!! zadano longint PPolozka = ^TPolozka; TItem = record Data: TData; Index: longint; Dalsi: PPolozka; end; TPole = PPolozka; !!! zadano staticke pole procedure Init(var FPole: TPole); implementation procedure Init(var FPole: TPole); begin FPole := nil; end; !!! chybi objekty