这周我做了这个作业:计算无向图中节点的等级,并测试其中是否存在欧拉路径。该功能应如下所示:
gradliste([[a,b],[b,c],[b,g],[c,d],[d,e],[e,f],[f,g],[g,h],[c,f]],X).
X = [[a, 1], [b, 3], [c, 3], [g, 3], [d, 2], [e, 2], [f, 3], [h, 1]]
testEulerweg([[a,b],[b,c],[c,d],[d,e],[a,e],[b,d],[b,e],[a,d]]).
true.
我对该函数的第一个想法gradliste
是“合并”图形并生成如下列表:
[a,b,b,c,b,g,c,d,d,e,e,f,f,g,g,h,c,f]
然后我计算每个节点的数量。不幸的是,我坚持merge
.
对于第二个函数testEulerweg
,我认为我应该首先编写一个函数allconnected
,如下所示:
allconnected([[a,b],[b,c],[c,d]]).
true.
allconnected([[a,b],[b,c],[e,f]]).
False.
然后我可以使用该gradliste
功能检查是否没有或有2个具有奇数级数的节点。
任何人都可以帮我解决我的想法吗?我也乐于接受新想法:)
提前致谢
熊熊