首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

两个集合的交集,该怎么解决

2012-05-20 
两个集合的交集len1和len2是两个集合pHead1和pHead2的长度我写的求这两个集合的交集,赋给一个新链表,不知

两个集合的交集
len1和len2是两个集合pHead1和pHead2的长度我写的求这两个集合的交集,赋给一个新链表,不知道为什么到第一个if那儿出错了


PNODE dcc2(PNODE pHead1, int len1, PNODE pHead2, int len2)
{
int i, j, k = 0;
PNODE pHead = (PNODE)malloc(sizeof(NODE));
PNODE pTail = pHead;
pTail->pNext = NULL;
PNODE p1 = pHead1->pNext;
PNODE p2 = pHead2->pNext;

for(i=0; i<len1; i++)
{
for(j=0; j<len2; j++)
{
if (p1->data == p2->data)
{
break;
}
k++;
p2 = p2->pNext;
}
if (k != len2)
{
PNODE pNew = (PNODE)malloc(sizeof(NODE));

pNew->data = p1->data;
pTail->pNext = pNew;
pNew->pNext = NULL;
pTail = pNew;
}
p1 = p1->pNext;
}
return pHead;
}


[解决办法]
你需要在每次进入第一层for循环的时候把K=0.如果不还原的话,肯定出错咯

热点排行