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

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

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

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

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

textual
Листинг программы
  1. {$mode objfpc}
  2. type
  3.   ptree = ^ttree;
  4.   ttree =
  5.   record
  6.     data : integer;
  7.     left, right : ptree;
  8.   end;
  9.  
  10. function MakeTree(value : integer; left_tree, right_tree : ptree) : ptree;
  11. begin
  12.   new(result);
  13.   result^.data := value;
  14.   result^.left := left_tree;
  15.   result^.right := right_tree;
  16. end;
  17.  
  18. function Find(root : ptree; X : Integer) : ptree;
  19. begin
  20.   if root = nil then result := nil
  21.   else
  22.     if X = root^.data then result := root
  23.     else
  24.       if X < root^.data then result := Find(root^.left, X)
  25.       else result := Find(root^.right, X)
  26. end;
  27.  
  28. var
  29.   root : ptree;
  30.  
  31. begin
  32.   // Создаем дерево
  33.   root :=
  34.     MakeTree(20,
  35.              MakeTree(7,
  36.                       MakeTree(4, nil, nil),
  37.                       MakeTree(16, nil, nil)),
  38.              MakeTree(38,
  39.                       MakeTree(37, nil, nil),
  40.                       MakeTree(43, nil, nil)));
  41.  
  42.   // Проверяем, есть ли в нем четверка. Должно выдать "Да"
  43.   if Find(root, 4) <> nil then writeln('Да')
  44.   else writeln('Нет');
  45.  
  46.   // удаление дерева - попробуй сделать самостоятельно
  47. end.

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

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

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


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

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

12   голосов , оценка 3.917 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы