主题:同结构的链表比较怎么实现啊?
拜师学艺
[专家分:0] 发布于 2005-09-03 15:10:00
要求创建两个链表A,B,输入数据后,要删除相同数据的结点。
现在我遇到的问题是:1.这两个链表建立的时候名字要不要不相同,2.输入数据后又该怎样用一个二重循环来依次比较结点。我想用两个指针应该可以做到,但是具体的代码我无法写出来,尤其是指针的指向,我弄不清楚。请大家帮帮我,帮我实现这一段代码。
回复列表 (共2个回复)
沙发
louisdeng [专家分:110] 发布于 2005-09-04 16:30:00
struct _Node
{
_Node *pNext ;
int node ;
} ;
struct _Node *ChainA, *ChainB ;
struct _Node *PrevA, *PrevB, *pHeadA, *pHeadB ;
for (ChainA = pHeadA ; ChainA ; ChainA = ChainA->pNext)
{
PrevA = NULL ;
PrevB = NULL ;
for (ChainB = pHeadB ; ChainB ; ChainB = ChainB->pNext)
{
if (ChainA->node == ChainB->node)
{
if (PrevA)
{
PrevA->pNext = ChainA->pNext ;
}
else
{
pHeadA = ChainA->pNext ;
}
free (ChainA) ; // if you want to release it
if (PrevB)
{
PrevB->pNext = ChainB->pNext ;
}
else
{
pHeadB = ChainB->pNext ;
}
free (ChainB) ; //if you want to release it
}
//自己想的,不知道能不能通过编译
板凳
prism [专家分:30] 发布于 2005-09-11 18:33:00
听不懂
我来回复