Деревья - Lisp

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

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

Помогите пожалуйста с подобного рода задачей. Вершины дерева помечены целыми числами. Определить лист, к которому ведет путь от корня с максимальной суммой чисел. В лиспе совсем не разбираюсь, а сдавать нужно

Решение задачи: «Деревья»

textual
Листинг программы
(mapcar #'car (task '(((nil 6 nil) 2 (nil 8 nil) ) 5 ((nil 11 nil) 7 (nil 0 nil)))))

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

В данном коде используется функция mapcar, которая применяет указанную анонимную функцию к каждому элементу списка. В данном случае, анонимная функция представлена символом #'car. Таким образом, код выполняет следующие действия:

  1. (mapcar #'car (task '(((nil 6 nil) 2 (nil 8 nil) ) 5 ((nil 11 nil) 7 (nil 0 nil)))))
  2. Функция mapcar применяется к списку '(((nil 6 nil) 2 (nil 8 nil) ) 5 ((nil 11 nil) 7 (nil 0 nil))).
  3. Анонимная функция #'car вызывается для каждого элемента списка.
  4. Результатом выполнения функции mapcar будет новый список, в котором каждый элемент будет содержать результат вызова функции #'car для соответствующего элемента исходного списка.
  5. Значение переменной task равно '(((nil 6 nil) 2 (nil 8 nil) ) 5 ((nil 11 nil) 7 (nil 0 nil))).
  6. Значение переменной nil равно nil.
  7. Значение переменной 6 равно 6.
  8. Значение переменной 2 равно 2.
  9. Значение переменной nil равно nil.
  10. Значение переменной 8 равно 8.
  11. Значение переменной 5 равно 5.
  12. Значение переменной nil равно nil.
  13. Значение переменной 11 равно 11.
  14. Значение переменной 7 равно 7.
  15. Значение переменной nil равно nil.
  16. Значение переменной 0 равно 0.
  17. Результатом выполнения функции mapcar будет новый список, содержащий следующие элементы: (6 2 8 5 11 7 0).
  18. Код не содержит дальнейшего использования этого списка, поэтому он не будет применен к другим элементам или переменным.

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

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