Подсчет количества листьев дерева, лежащих за пределами заданного диапазона - Lisp

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

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

Пожалуйста помогите! Даны число N, число M и S-выражение, представляющее дерево вида «(Родитель Значение РебенокЛевый РебенокПравый)» с числами в качестве вершин. Определить функцию для подсчёта количества вершин, значения которых лежат вне диапазона между N и M не включительно. Например: если дано "2 7 (0 (5 (1 nil nil) (7 nil nil)) (4 nil (10 nil nil)))", ответом будет "3"

Решение задачи: «Подсчет количества листьев дерева, лежащих за пределами заданного диапазона»

textual
Листинг программы
  1. (defun tree-count (m n tree)
  2.   (cond ((null tree) 0)
  3.         (t (let ((v (car tree))
  4.                  (l (cadr tree))
  5.                  (r (caddr tree)))
  6.                (+ (tree-count m n l) (tree-count m n r)
  7.                   (if (or (< v m) (> v n)) 1 0))))))  
  8.  
  9. ==> tree-count
  10.  
  11. (tree-count 2 7 '(0 (5 (1 nil nil) (7 nil nil)) (4 nil (10 nil nil))))
  12.  
  13. ==> 3

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


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

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

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

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

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

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