我已經試過很多次,但我仍然停留在這個問題上,這是我輸入:遞歸的方案
(define *graph*
'((a . 2) (b . 2) (c . 1) (e . 1) (f . 1)))
,我所要的輸出是這樣的:((2 AB) (1個CEF))
這裏是我的代碼:
(define group-by-degree
(lambda (out-degree)
(if (null? (car (cdr out-degree)))
'done
(if (equal? (cdr (car out-degree)) (cdr (car (cdr out-degree))))
(list (cdr (car out-degree)) (append (car (car out-degree))))
(group-by-degree (cdr out-degree))))))
能否請你告訴我什麼,我做錯了COS我的代碼的輸出是(2)。然後我認爲我的代碼的想法是正確的。
請幫忙!!!
解決方案的總體思路是不是C orrect。您沒有跟蹤遇到的元素,因爲您需要額外的數據結構。在我的解決方案中,我展示瞭如何使用散列表進行此操作。 –
非常感謝! –
還有一件事,我認爲如果我先通過對的第二個元素過濾列表,然後應用他的算法並最終追加2個列表,那麼Zack Stack的答案將是正確的。你對我的想法有什麼看法?我試圖看看會發生什麼:) –