選択したノードの子であるすべてのノードを見つける必要があります。グラフは次のように作成されます:(setq graf1'((A(BC))(B(DE))(C(FG))(D(H))(E(I))(F(J))(G( J))(H())(I(J))(J())))したがって、ノードBのすべての子は(第1レベルで)D、E、第2 H、I、第3Jです。コードは次のとおりです。最初のレベルの子供を見つけるためですが、私はLispの初心者なので、他の子供のためにそれを機能させることはできません。
(defun sledG (cvor graf obradjeni)
(cond ((null graf) '())
((equal (caar graf) cvor)
(dodaj (cadar graf) obradjeni))
(t(sledG cvor (cdr graf) obradjeni)))
(defun dodaj (potomci obradjeni)
(cond ((null potomci) '())
((member (car potomci) obradjeni)
(dodaj (cdr potomci) obradjeni )
(t(cons (car potomci)
(dodaj (cdr potomci) obradjeni) ))))
(setq graf1 '((A(B C)) (B(D E)) (C (F G )) (D (H)) (E(I)) (F(J)) (G(J)) (H()) (I(J)) (J())))