例如,我有一个这样的图表:
(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)))
返回#t,因为如果我使用memq,它根本不起作用。
find-inverse-node:返回对中包含特定节点的第一个元素,例如:(find-inverse-node 'b '(a . (d b)))
将返回(a b)
我想遍历图形,使用 get-all-node 函数中返回的每个元素来查找该元素是否在该对的第二部分中,如果它在,则将其附加到找到的节点列表中.
例如:(loop-graph graph)
返回((e b c) (e) (d) (c b) (d a) (b a))
我试图这样做很长时间,但没有成功。请帮忙 !!提前致谢!!