uses crt; type nodetype=^node; node=record parem:nodetype; vasak:nodetype; nimi:string; end; var first_node:nodetype; olemas:boolean; //rekursiivne funktsioon puule solme lisamiseks, tagastab juure aadressi. function lisa(pointer:nodetype; info:string):nodetype; begin if pointer=NIL then begin new(pointer); pointer^.parem:=NIL; pointer^.vasak:=NIL; pointer^.nimi:=info; end else begin if pointer^.nimiinfo then begin pointer^.vasak:=lisa(pointer^.vasak,info); end; end; lisa:=pointer; end; //rekursiivne funktsioon nimede kuvamiseks t„hestikulises j„rjekorras. procedure inorder(pointer:nodetype); begin if pointer^.vasak<>NIL then inorder(pointer^.vasak); writeln(pointer^.nimi); if pointer^.parem<>NIL then inorder(pointer^.parem); end; //rekursiivne protseduur, mis nime olemasolul annab globaalsele muutujale //olemas v„„rtuse true; procedure otsi(pointer:nodetype; info:string); begin if (pointer^.nimiNIL) then otsi(pointer^.parem,info); if pointer^.nimi=info then olemas:=true; if (pointer^.nimi>info) AND (pointer^.vasak<>NIL) then otsi(pointer^.vasak,info); end; procedure menu; var key:char; name:string; begin repeat repeat clrscr; writeln(' VALI TEGEVUS '); writeln('---------------'); writeln('(L)isa nimi'); writeln('(O)tsi nime'); writeln('(T)rki nimed'); writeln('(V)„lju'); writeln(); key:=readkey; until key in ['L','l','O','o','T','t','V','v']; case key of 'L','l': begin write('Sisesta nimi: '); readln(name); first_node:=lisa(first_node,name); textcolor(green); writeln('Lisatud!'); readkey; normvideo; end; 'O','o': begin write('Sisesta nimi: '); readln(name); otsi(first_node,name); if olemas=true then begin textcolor(green); writeln('Nimi ',name,' on olemas!'); normvideo; end else begin textcolor(red); writeln('Nimi ',name,' puudub!'); normvideo; end; olemas:=false; readkey; end; 'T','t': begin textcolor(green); clrscr; writeln('Nimed t„hestikulises j„rjekorras: '); writeln('----------------------------------'); normvideo; inorder(first_node); readkey; end; end; //case until (key='v') or (key='V'); end; begin first_node:=NIL; olemas:=false; menu; end.