Проверка наличия заданного числа в сформированном бинарном дереве - Free Pascal

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

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

Создать программой числовое двоичное дерево. Написать программу:проверки наличия заданного числа в сформированном дереве.

Решение задачи: «Проверка наличия заданного числа в сформированном бинарном дереве»

textual
Листинг программы
{$mode objfpc}
type
  ptree = ^ttree;
  ttree =
  record
    data : integer;
    left, right : ptree;
  end;
 
function MakeTree(value : integer; left_tree, right_tree : ptree) : ptree;
begin
  new(result);
  result^.data := value;
  result^.left := left_tree;
  result^.right := right_tree;
end;
 
function Find(root : ptree; X : Integer) : ptree;
begin
  if root = nil then result := nil
  else
    if X = root^.data then result := root
    else
      if X < root^.data then result := Find(root^.left, X)
      else result := Find(root^.right, X)
end;
 
var
  root : ptree;
 
begin
  // Создаем дерево
  root :=
    MakeTree(20,
             MakeTree(7,
                      MakeTree(4, nil, nil),
                      MakeTree(16, nil, nil)),
             MakeTree(38,
                      MakeTree(37, nil, nil),
                      MakeTree(43, nil, nil)));
 
  // Проверяем, есть ли в нем четверка. Должно выдать "Да"
  if Find(root, 4) <> nil then writeln('Да')
  else writeln('Нет');
 
  // удаление дерева - попробуй сделать самостоятельно
end.

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

  1. Программа создает тип данных ptree, который представляет собой узел бинарного дерева.
  2. Функция MakeTree создает новый узел с заданным значением и двумя указателями на поддеревья (левое и правое).
  3. Функция Find рекурсивно ищет в дереве узел с заданным значением. Если найденный узел не является листовым, функция вызывает сама себя для поиска в поддереве.
  4. В основной части программы создается экземпляр бинарного дерева, используя функцию MakeTree.
  5. Затем программа вызывает функцию Find для проверки наличия числа 4 в дереве.
  6. Если узел с числом 4 найден, программа выводит Да. Если узел не найден, программа выводит Нет.
  7. В конце программы необходимо реализовать код для удаления дерева.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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