INPUT:((B(D(E)(F)))(C)(K)) 私は現在、私の出力を与える二つの機能を有する:dolistを使用せずに再帰のみのlispでtreeを印刷するには?
B
C
K
B
D
D
E
F
E
NIL
私はこのような出力を必要しかし:
:BCK
B:D
C:
をk:
D:
E F E:
F:
F又は
B S K
D
E
(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)))))
私はこの質問を理解していません。 「新しい行からすべて」 - これはどういう意味ですか?あなたの質問には、予想される入力と出力の有用な例がありません。 –
@RainerJoswigがそれを変更しました、それはより明確ですか? – ninjaknight
@RainerJoswig新しくスタックするために、すべての情報を追加するのを忘れました – ninjaknight