2011-10-02 53 views
0

我試圖制定一個方案的功能定義,將採取一個圖:方案,列表和圖論

(define aGraph 
    '{{USA {Canada Mexico}} 
     {Mexico {USA}} 
     {Canada {USA}}}) 

,並找到接壤的圖的指定節點的節點數量。我相信我以錯誤的方式來解決這個問題;這裏是我迄今所做的:

(define (nodes n graph) 
     (cond ((null? n) '()) 
     (else 
     (cond ((eqv? n (first graph)) (length (first graph))) 
     (else (nodes n (rest graph))))))) 

不用說,這是行不通的(該函數可以這樣調用:(節點「USA阿格拉夫),這在理論上應該返回2)。你有什麼建議可以讓我走上正軌?

回答

1

讓我們來看看這條線:

(cond ((eqv? n (first graph)) (length (first graph))) 

您在(eqv? n (first graph))並作爲(length (first graph))鑲邊節點處理(first graph)爲兩個節點鍵 - 或許,這將更好地工作:

(cond ((eqv? n (first (first graph))) (length (second (first graph)))) 
+0

謝謝非常感謝您的回覆;我現在看到我做錯了什麼,問題就解決了。 –