Подсчет количества листьев дерева, лежащих за пределами заданного диапазона - Lisp
Формулировка задачи:
Пожалуйста помогите!
Даны число N, число M и S-выражение, представляющее дерево вида «(Родитель Значение РебенокЛевый РебенокПравый)» с числами в качестве вершин. Определить функцию для подсчёта количества вершин, значения которых лежат вне диапазона между N и M не включительно.
Например: если дано "2 7 (0 (5 (1 nil nil) (7 nil nil)) (4 nil (10 nil nil)))", ответом будет "3"
Решение задачи: «Подсчет количества листьев дерева, лежащих за пределами заданного диапазона»
textual
Листинг программы
(defun tree-count (m n tree) (cond ((null tree) 0) (t (let ((v (car tree)) (l (cadr tree)) (r (caddr tree))) (+ (tree-count m n l) (tree-count m n r) (if (or (< v m) (> v n)) 1 0)))))) ==> tree-count (tree-count 2 7 '(0 (5 (1 nil nil) (7 nil nil)) (4 nil (10 nil nil)))) ==> 3
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д