0
本週我做了這個作業:計算無向圖中節點的等級並測試它是否有歐拉路徑。該函數應該像下面:Prolog等級計數器和eulerpath
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個節點。
任何人都可以幫助我的想法嗎?我也開了新的想法:)
在此先感謝
bearzk
我仍然不知道如何測試,如果路徑是一筆畫問題,你會不會介意給我更多的提示? – bearzk 2011-06-13 11:53:51