這是我的代碼:如何查看Haskell中的列表?
module Main where
import Data.Graph.Inductive
import Data.Graph.Inductive.Example
func :: Graph gr=> gr a b ->[Node]->Int-> [(Node,Int)]
func graph (x:xs) y
|indeg graph x == 0 = (x,y+1):func (delNode x graph) xs (y+1)
graph2:: Gr Int Int
graph2 = mkGraph (genLNodes 1 14)[(1,2,1),
(1,3,1),
(3,14,1),
(14,6,1),
(14,7,1),
(2,4,1),
(2,5,1),
(4,6,1),
(5,7,1),
(6,8,1),
(7,9,1),
(8,10,1),
(9,11,1),
(10,12,1),
(11,12,1),
(12,13,1),
(14,13,1)]
Graph2有14個節點,並且例如(1,2,1)意味着,邊緣從節點1到節點2,其重量的1
Func鍵把我Graph2 ,拓撲排序頂點和一些數字,例如0. Func檢查節點的內向限度是否等於0,並創建元組列表,其中x是IdNode,當indeg圖x == 0爲真時,y正在增加。頂點被刪除
,這裏是我的問題,我想看看是否有更多的頂點度爲0,並添加1
編輯:
該函數應該如下行動:
topsort:[1,3,14,2,5,7,9,11,4,6,8,10,12,13]
- 檢查列表中每個節點的入境程度。
- 如果度數等於0,則向路徑長度加1(節點1入站等於0,因此路徑長度= 1)
- 從圖中刪除節點並檢查節點移除節點的入境度並返回步驟2.持續例如
:
移除節點1後,節點2和3具有在結合的= 0,所以我加1,路徑長度(路徑lenght = 2節點2和3)和我刪除節點2和3.
現在入境度= 0有14,4,5所以我加1路徑leng th(路徑長度= 3),我刪除這些節點等等
目前還不清楚你在問什麼。它看起來似乎與「檢查列表」沒有太大關係請重新描述你想要做什麼,最好是用你想定義的函數的類型簽名。另外:請正確使用markdown:內嵌代碼片段如'[(1,1)]'應該反引號,如下所示:''我加1('[(1,1)]')''。 _And_:儘量保持示例最小化。就這個問題而言,你的這張圖肯定不是那麼簡單。 – leftaroundabout