Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Контрольные работы » Бінарне дерево

Реферат Бінарне дерево





проходження -------------} PrintDown (level: integer; root: pnode);

{в цьому обході заодно розрахуємо висоту дерева h для його подання}

if root = nil then

exit;

with root ^ do

begin

{для прошивки дерева встановлюємо прапорці}

if right = nil then

rf: = false;

lf: = false;

{визначаємо висоту дерева}

if (left = nil) and (right = nil) then

begin

j: = j +1;

if h

{висотою дерева є його максимальний шлях проходження}

h: = j;

j: = 0;

end;

writeln ('': 2 * level, v);

j: = j +1;

PrintDown (level +1, left);

PrintDown (level +1, right)

end;;

{--------------- Симетричний порядок проходження -------} PrintLex (level: integer; root: pnode);

if root = nil then

exit;

with root ^ do

begin

PrintLex (level +1, left);

writeln ('': 2 * level, v);

PrintLex (level +1, right);

end;

{----------- Кінцевий порядок проходження ----------} PrintUp (level: integer; root: pnode);

if root = nil then

exit;

with root ^ do

begin

PrintUp (level +1, left);

PrintUp (level +1, right);

writeln ('': 2 * level, v);

end;

{------------ прошивка ---------------------------- -} Threading (x: pnode); p: pnode;

stop: boolean;

{встановлюємо покажчик}

procedure rightPointer (y: pnode; i: integer);

begin

if stop = true then

exit;

j: = j +1; {підраховуємо число рекурсій}

if y = nil then

exit;

with y ^ do

begin

rightPointer (left, i);

if (j> i) and (rf = true) then

begin

j: = 0;

writeln ('Прошиваємо', x ^. v, 'елемент з', v);

x ^. right: = y;

{згортаємо рекурсію}

stop: = true;

{помічаємо, що вузол або аркуш прошитий}

x ^. lf: = true;

exit;

end;

if lf = true then

exit;

rightPointer (right, i);

end

end;


i: = i +1; {підраховуємо число рекурсій}

if x = nil then

exit;

with x ^ do

begin

rf: = true; {помічаємо, що вузол або аркуш відвідувався}

Threading (left);

if (rf = true) and (right = nil) then

{якщо сайт не прошитий}

begin

stop: = false;

{прошиваємо його}

rightPointer (root, i);

end;

if (left = nil) and (right = nil) then

{прошиваємо лист}

begin

stop: = false;

rightPointer (root, i);

end;

writeln ('', v);

if lf = true then {якщо вузол або аркуш прошитий}

exit; {виходимо}

Threading (right);

end;;

{------------- формування дерева ---------------} Cycle; i: = 1 to n do

Insert (root, m [i]);;

{----------------------------------------- -----------}

Cycle;

{визначимо висоту дерева обходом зверху-вниз}

PrintDown (1, root);


writeln ('Виберіть дію');

while true do

...


Назад | сторінка 4 з 5 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Creation of control system by a personnel how to begin with a zero
  • Реферат на тему: Побудова та аналіз взаємодії дерева цілей і дерева систем організації
  • Реферат на тему: Аналіз техніки та методика навчання стрибка у висоту способом "Фосбері ...
  • Реферат на тему: Структура B + -дерева
  • Реферат на тему: Бінарні дерева