INPUT: (A (B (D (E) (F))) (C) (K)) j'ai actuellement deux fonctions, ce qui me donnent un signal de sortie:Comment imprimer l'arbre en Lisp sans dolist, seulement récursion?
A
B
C
K
B
D
D
E
F
E
NIL
Cependant, je dois sorties comme ceci:
a: BCK
b: d
c:
k:
d: e f
e:
f:
ou
un
b s k
d
e f
(defun print-children (s)
(cond ((null (caar (cdr s))) nil)
(t (print (caar (cdr s))) (print-children (cdr s)))))
(defun print-tree (s)
(cond ((null s) nil)
((atom (car s)) (print (car s)) (print-children s) (print-tree (cdr s)))
(t (print-tree (car s)))))
Je ne comprends pas cette question. "tout de la nouvelle ligne" - qu'est-ce que cela signifie? Votre question manque d'un exemple utile de l'entrée et de la sortie attendues. –
@RainerJoswig l'a changé, est-ce plus clair? – ninjaknight
@RainerJoswig nouveau à empiler, a oublié d'ajouter toutes les informations – ninjaknight