【发布时间】:2012-03-22 00:03:32
【问题描述】:
我有 2 个链表,我想比较两个列表并打印两个列表中出现的每个常见元素。尝试了一切都无法让它工作。
struct Node *calcIntersection(struct Node *headA, struct Node *headB)
{
struct Node * link1 = headA;
struct Node * link2 = headB;
while(link1 != NULL)
{
if (link2->value == link2->value)
{
printf("%d", link1->value);
}
link1 = link1 -> pNext;
}
return link1;
}
【问题讨论】:
-
这是作业吗?如果是这样,请标记它。
-
不是功课,试着自学算法和数据结构。
-
当比较一个集合中的每个项目时,与另一个集合中的每个项目必须有两个循环(某处), 不是一个。所以它至少有一半。
-
列表是否已排序?列表之一是否已排序?您是否可以对它们进行排序(或更改)?如果列表包含重复项会发生什么情况,在这种情况下您是否需要(部分)笛卡尔积?
-
列表没有排序,不介意是否排序,只是尝试找到从两个集合中获取公共元素的最佳方法。
标签: c