Создайте программу обхода дерева по принципу левый – правый – корень - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Создайте программу обхода дерева по принципу левый – правый – корень pls)0

Решение задачи: «Создайте программу обхода дерева по принципу левый – правый – корень»

textual
Листинг программы
type
  TInf=integer;
  pTree=^Tree;
  Tree=record
    Inf:TInf;
    Left,Right:pTree;
  end;
procedure AddToTree(var aT:pTree;const aInf:TInf);
begin
  If aT=nil then begin
    New(aT);
    aT^.Inf:=aInf;
    aT^.Left:=nil;
    aT^.Right:=nil;
  end else if (aInf>=aT^.Inf) then AddToTree(aT^.Right,aInf)
  else AddToTree(aT^.Left,aInf);
end;
procedure PrintT(aT:pTree);
begin
  If aT=nil then exit;
  PrintT(aT^.Left);
  PrintT(aT^.Right);
  write(aT^.Inf:7);
end;
var T:pTree;
    i,n:integer;
    a:TInf;
begin
  T:=nil;
  write('Количество узлов в дереве: '); readln(n);
  randomize;
  for i := 1 to n do begin
    a:=random(51)-25;
    write(a:7);
    AddToTree(T,a);
  end;
  writeln;
  writeln('Постфиксный обход дерева:');
  PrintT(T);
  readln;
end.

Объяснение кода листинга программы

  1. Создается тип данных TInf, который представляет собой целое число.
  2. Создается переменная pTree, которая является указателем на структуру Tree.
  3. Создается структура Tree, которая содержит три поля: Inf (целое число), Left (указатель на pTree) и Right (указатель на pTree).
  4. Создается процедура AddToTree, которая принимает указатель на структуру Tree и целое число aInf в качестве параметров. Если aT равно nil, то создается новый экземпляр структуры Tree и устанавливаются значения полей Inf, Left и Right. В противном случае выполняется рекурсивный вызов процедуры AddToTree для aT^.Left или aT^.Right в зависимости от того, какое из значений aInf больше, чем значение поля Inf в aT.
  5. Создается процедура PrintT, которая принимает указатель на структуру Tree в качестве параметра. Если aT равно nil, то выход из программы. Затем вызываются рекурсивные функции PrintT для aT^.Left и aT^.Right, а затем выводится значение поля Inf в aT.
  6. Создается переменная T, которая инициализируется как nil.
  7. Выводится сообщение Количество узлов в дереве:, а затем считывается число n от пользователя.
  8. Инициализируется генератор случайных чисел.
  9. Запускается цикл, который повторяется n раз. В каждой итерации считывается случайное число a от 25 до 70.
  10. Вызывается процедура AddToTree с указателем T и значением a в качестве аргументов.
  11. Выводится значение a от пользователя.
  12. Выводится сообщение Постфиксный обход дерева:, а затем вызывается процедура PrintT с указателем T в качестве аргумента.
  13. Выводится символ новой строки.
  14. Выводится сообщение readln(n), чтобы пользователь мог увидеть, что программа успешно завершилась.

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы