^. v;
end
else
begin
m2: = m2 +1;
mas2 [m2]: = 0;
end;
end;
{занесення нащадків вузлів дерева наступного рівня в перший масив}
procedure ToMas1;
begin
if Sch ^. left <> nil then
begin
Chl: = Sch ^. left;
m1: = m1 +1;
mas1 [m1]: = Chl ^. v;
end
else
begin
m1: = m1 +1;
mas1 [m1]: = 0;
end;
if Sch ^. right <> nil then
begin
Chr: = Sch ^. right;
m1: = m1 +1;
mas1 [m1]: = Chr ^. v;
end
else
begin
m1: = m1 +1;
mas1 [m1]: = 0;
end;
end;
{якщо рівень дерева не є останнім - заносимо 2 нуля в перший масив}
procedure NilToMas1;
begin
if i> 1 then
begin
m1: = m1 +1;
mas1 [m1]: = 0; {перший нуль}
m1: = m1 +1;
mas1 [m1]: = 0; {другий нуль}
end;
end;
{якщо рівень не останній - заносимо нулі в другій масив}
procedure NilToMas2;
begin
if i> 1 then
begin
m2: = m2 +1;
mas2 [m2]: = 0;
m2: = m2 +1;
mas2 [m2]: = 0;
end;
end;
mas1 [1]: = root ^. v;
m1: = 1;
m2: = 0;
for i: = h downto 1 do
begin
writeln;
{відображаємо перший елемент рівня}
if mas1 [1] = 0 then
begin
NilToMas2;
write ('': (sc (i) +1));
end
else
begin
write ('': sc (i), mas1 [1]);
Search (root, mas1 [1]);
ToMas2;
end;
{відображаємо інші елементи, якщо рівень дерева не містить корінь}
if m1> 1 then
begin
for q: = 2 to m1 do
if mas1 [q] = 0 then
begin
NilToMas2;
write ('': (sc (i +1) +1));
end
else
begin
write ('': sc (i +1), mas1 [q]);
Search (root, mas1 [q]);
ToMas2;
end;
end;
m1: = 0;
{на наступний рівень}
if i = 1 then
break
else
i: = i-1;
writeln;
if mas2 [1] = 0 then
begin
NilToMas1;
write ('': (sc (i) +1));
end
else
begin
write ('': sc (i), mas2 [1]);
Search (root, mas2 [1]);
ToMas1;
end;
for q: = 2 to m2 do
begin
if mas2 [q] = 0 then
begin
NilToMas1;
write ('': (sc (i +1) +1));
end
else
begin
write ('': sc (i +1), mas2 [q]);
Search (root, mas2 [q]);
ToMas1;
end;
end;
m2: = 0;
{на наступний рівень}
end;;
{------------- Прямий порядок ...