我已经试过很多次,但我仍然停留在这个问题上,这是我输入:递归的方案
(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的答案将是正确的。你对我的想法有什么看法?我试图看看会发生什么:) –