Проверка наличия заданного числа в сформированном дереве - Free Pascal
Формулировка задачи:
1. Создать программой числовое двоичное дерево. Написать программу:
1) проверки наличия заданного числа в сформированном дереве;
Ребята,надо очень срочно,помогите пожалуйста!
заранее спасибо!
Решение задачи: «Проверка наличия заданного числа в сформированном дереве»
textual
Листинг программы
- function Find(root : ptree; X: integer) : ptree;
- begin
- if root = nil then result := nil
- else
- if X = Root^.info then result := root
- else
- if X < Root^.info then result := Find(root^.l, X)
- else result := Find(root^.r, X);
- end;
- // и вызов:
- // ... тут создаешь дерево root ...
- t := Find(root, 22);
- if t = nil then
- writeln('Нет узла с таким значением')
- else writeln('Найдено');
Объяснение кода листинга программы
В данном случае задача заключается в поиске узла с заданным значением в дереве, и результат поиска будет либо найденный узел, либо null, если узел не найден. Вот список элементов кода с соответствующими номерами:
- Объявление функции с именем Find.
- Передача двух параметров в функцию: root (корень дерева) и X (значение, которое нужно найти).
- Оператор if для проверки, является ли корень дерева равным nil.
- Если корень равен nil, то результат функции будет равен nil.
- Если корень не равен nil, то выполняется оператор else.
- Сравнение значения X со значением Root^.info.
- Если X равно Root^.info, то результат функции будет равен root.
- Если X меньше Root^.info, то результат функции будет найден в левом поддереве (передача root^.l и X в функцию Find).
- Если X больше Root^.info, то результат функции будет найден в правом поддереве (передача root^.r и X в функцию Find).
- Вызов функции Find с аргументами root и 22.
- Проверка результата функции Find.
- Если результат равен nil, то выводится сообщение «Нет узла с таким значением».
- Если результат не равен nil, то выводится сообщение «Найдено».
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д