Курсовая работа: Структури даних для обробки інформації

begin
b_parent:=b_buf;
if b_new^.key<b_parent^.key
then b_buf:=b_buf^.left

else b_buf:=b_buf^.right;

end;

Наступний крок – направити вказівник b_new^.parent на знайдений елемент b_parent та вказівники left або right знайденого елемента b_parent на елемент, що вставляється b_new:

Програмний код виставлення лівого та правого вказівників знайденого елемента-предка (b_parent^.left та b_parent^.right) на новий елемент (b_new) та вказівника нового елемента-потомка (b_new^.parent) на знайдений елемент-предок (b_parent):

b_new^.parent:=b_parent;if b_new^.key<b_parent^.key then b_parent^.left:=b_new

else b_parent^.right:=b_new

ВИВЕДЕННЯ НА ЕКРАН ЛИСТКІВ БІНАРНОГО ДЕРЕВА.

Процедура виведення листів бінарного дерева є рекурсивною. Адже листками деякого дерева Х є листи його лівого та правого потомків (якщо ці потомки не nil). Назвемо процедуру виведення листка дерева write_tree(x:BinarTree). Якщо лівий та правий вказівники деякого елемента вказують на nil значить цей елемент є листом, а отже його треба вивести на екран. Інакше шукаємо листки лівого потомка (якщо він не рівний nil), а потім – правого потомка (якщо він також не рівний nil).

procedure write_tree(x:BinarTree);

begin

if (x^.left=nil) and (x^.right=nil) then write(x^.data,' ')

else

begin

if x^.left<>nil then write_tree(x^.left);

if x^.right<>nil then write_tree(x^.right);

end;

end;

ТЕКСТ ПРОГРАМИ ФОРМУВАННЯ БІНАРНОГО ДЕРЕВА
ТА ВИВЕДЕННЯ НА ЕКРАН ЙОГО ЛИСТІВ

uses crt;

type

BinarTree=^node;

node=record

key:integer;

data:string;

left,right,parent:BinarTree;

end;

var

b,b_parent,b_new,b_buf:BinarTree;

К-во Просмотров: 720
Бесплатно скачать Курсовая работа: Структури даних для обробки інформації