Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник задач Бабалова.doc
Скачиваний:
95
Добавлен:
04.06.2015
Размер:
1.16 Mб
Скачать

Пример 2.5.

В качестве примера рассмотрим создание сбалансированного дерева и выполнение всех действий с элементами дерева: поиск заданного элемента в дереве, вставку любого нового элемента, удаление заданного элемента из дерева, вывод дерева в достаточно наглядной форме. Решение задачи состоит из двух файлов: основной программы и модуля, в котором описаны все названные действия над элементами дерева.

Program Number_2_5;

uses crt,prg11;

var

tree:ttree;

c:integer;

procedure pause;

begin

write('Нажмите любую клавишу для продолжения');

readkey;

while keypressed do readkey;

end;

procedure menu;

begin

clrscr;

writeln(' Выберите действие');

writeln('1. Создание дерева');

writeln('2. Вывод дерева на экран');

writeln('3. Нахождение требуемого элемента');

writeln('4. Удаление элемента из дерева');

writeln('5. Добавление элемента в дерево');

writeln('6. Завершение работы');

writeln;

case readkey of

'1': begin

write ('Введите количество узлов дерева ');

readln(c);

tree.first:=tree.create(c);

clrscr;

gotoxy(30,10);

writeln('Дерево создано');

pause;

end;

'2': begin

tree.vivod(tree.first,0);

pause;

end;

'3': begin

write('Введите искомый элемент ');

readln(c);

tree.findel(tree.first,0,c);

tree.vivod(tree.first,0);

pause;

end;

'4': begin

write('Введите удаляемый элемент ');

readln(c);

tree.delel(tree.first,c);

pause;

end;

'5': begin

write('Введите новый элемент ');

readln(c);

tree.addel(c,tree.first);

tree.vivod(tree.first,0);

pause;

end;

'6': begin

write(' Завершение задачи ');

tree.done(tree.first);{Уничтожение дерева}

halt;

end;

end; end;

begin

tree.init;

repeat menu until false;

end.

unit prg11;