Проверка наличия заданного числа в сформированном бинарном дереве - 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.
Объяснение кода листинга программы
- Программа создает тип данных
ptree
, который представляет собой узел бинарного дерева. - Функция
MakeTree
создает новый узел с заданным значением и двумя указателями на поддеревья (левое и правое). - Функция
Find
рекурсивно ищет в дереве узел с заданным значением. Если найденный узел не является листовым, функция вызывает сама себя для поиска в поддереве. - В основной части программы создается экземпляр бинарного дерева, используя функцию
MakeTree
. - Затем программа вызывает функцию
Find
для проверки наличия числа 4 в дереве. - Если узел с числом 4 найден, программа выводит
Да
. Если узел не найден, программа выводитНет
. - В конце программы необходимо реализовать код для удаления дерева.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д