たとえば、次のようなグラフがあります。
(define graph
'((a . (d b))
(b . (c e))
(c . (e)))
(d . ())
(e . ())
私は3つの関数を定義しています:
get-all-node: このグラフ内のすべてのノードのリストを(get-all-node graph)返します。(a b c d e)
find-node: これは、ノードがネストされたリストにあるかどうかに関係なく、ブール値の #t または #f を返します(find-node 'b '(a . (d b)))。
(find-inverse-node 'b '(a . (d b)))find-inverse-node: 特定のノードを含むペアの最初の要素を返します。たとえば、(a b)
get-all-node 関数で返された各要素を使用してグラフをループし、その要素がペアの 2 番目の部分にあるかどうかを調べ、含まれている場合は、見つかったノードのリストに追加します.
例:(loop-graph graph)返品((e b c) (e) (d) (c b) (d a) (b a))
私はこれを長い間試みましたが、成功していません。助けてください !!前もって感謝します!!