单链表
作者/cherryqi 时间/2006-8-4 15:07:00 类别/数据结构 查看/
 发表评论 以论坛方式查看
标签:数据结构
写一算法将单链表中值重复的结点删除,使所得的结果表中各结点值均不相同
本题可以这样考虑,先取开始结点中的值,将它与其后的所有结点值一一比较,发现相同的就删除掉,然后再取第二结点的值,重复上述过程直到最后一个结点。

第二种算法是将单链表按值的大小排序,排好后的结点按相同的删除。 
void DeleteList(Nodetype *L)
{
Nodetype *p,*q,*s;
if(L->Next==NULL||L->Next==NULL)
{
printf("删除错误\n");exit(0);
}
p=L->Next;
q=p->Next;
while(p->Next!=NULL)
{
while(q)
{
s=q;
if(q->Data==p->Data)
{
s->Next=q->Next;
free(q);
q=s->Next;
}
else
q=q->Next;
}
p=p->Next;
}
}
查看该用户更多文章>>