program lab11; uses crt,u_lr11; procedure get_newnode(var rec: rabotnik); begin with rec do begin write('число : '); readln(number); write('FIO : '); readln(fio); write('год рождения: '); readln(godroj); write('пол : '); readln(pol); write('сем. полож. : '); readln(cem); write('дети : '); readln(koldet); write('доход : '); readln(oklad); end; end; var top,Root,addtree:PTree; fnd: boolean; f:ftype; nbr,n:integer; key1:integer; fdl,E:string; newnode: rabotnik; begin assign(f,'employ.dat'); rewrite(f); top:=nil; repeat clrscr; writeln('1-Организация дерева'); writeln('2-Просмотр дерева'); writeln('3-Добавление листа в дерево'); writeln('4-Удаление элемента из дерева'); writeln('5-Поиск в дереве по ключу'); writeln('6-Число вхождений элемента Е в дерево'); writeln('7-Выход'); writeln('--------------------------------------------------------------------------------'); writeln; writeln('выбор'); readln(nbr); case nbr of 1:orgtree(f,top); 2:begin writeln; writeln(' Выполняется процедура просмотра дерева'); writeln; top^.prosmotr(top); writeln; readln; end; 3:begin get_newnode(newnode); top := top^.addtree(top,newnode); end; 4:begin writeln; writeln(' Введите фамилию удаляемого элемента'); readln(fdl); top^.delete(top,fdl); end; 5:begin writeln; writeln('key family'); readln(key1); fnd:=top^.search(top,key1); writeln; if fnd then writeln('найдено') else writeln('не найдено'); readln; end; 6:begin writeln; writeln(' Введите фамилию сотрудника'); readln(E); writeln; n:=0; newnode.fio := E; top^.Count_E(Root,n,newnode); writeln('Число сотрудников с фамилией ',E,' равно ',n); readln; end; end; until nbr=7; close(f); end.