Разработать функцию, которая подсчитывает высоту заданного бинарного дерева - Lisp

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

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

Разработать функцию, которая подсчитывает высоту заданного бинарного дерева. 2 примера с разным числом уровней. Сделать в графическом и кодовом варианте *** Не совсем понимаю, как это сделать Еще и со схемой, поясняющей работу функции

Решение задачи: «Разработать функцию, которая подсчитывает высоту заданного бинарного дерева»

textual
Листинг программы
(defun tree-depth (tree)
  (cond ((null tree) 0)
        (t (+ 1 (max (tree-depth (car tree)) (tree-depth (caddr tree))))))) 
 
==> TREE-DEPTH
 
(tree-depth '((nil 10 nil) 111 ((nil 122 (nil 123 nil)) 222 (nil 333 nil))))
 
==> 4

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

В данном коде определена функция tree-depth, которая принимает в качестве аргумента ссылку на узел дерева. Если дерево пустое, то функция возвращает 0. В противном случае, функция рекурсивно вызывает саму себя для левого и правого поддеревьев, и возвращает максимальную глубину из этих двух поддеревьев плюс 1. Пример использования функции: (tree-depth '((nil 10 nil) 111 ((nil 122 (nil 123 nil)) 222 (nil 333 nil)))) Результат выполнения: 4

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


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

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

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