#include "SLinkNode.cpp"
void Dsccf(SLinkNode *&L)
{
SLinkNode *p=L->next,*preq,*q;
while(p->next!=NULL)
{
q=p->next;
if(q->data==p->data)
{
preq=q;
p->next=preq->next;
free(preq);
}
else
{
p=p->next;
q=q->next;
}
}
}
int main()
{
SLinkNode *L;
InitList(L);
ElemType a[]={2,1,0,2,1,0,0,0};
int n=sizeof(a)/sizeof(a[0]);
CreateListR(L,a,n);
printf("线性表:");DispList(L);
Dsccf(L);
printf("线性表:");DispList(L);
DestroyList(L);
}
void Dsccf(SLinkNode *&L)函数修改如下,供参考:
void Dsccf(SLinkNode*& L)
{
SLinkNode *p = L->next, *preq, *q;
while (p != NULL)
{
preq = p;
q = p->next;
while (q) {
if (q->data == p->data){
preq->next = q->next;
free(q);
q = preq->next;
}
else{
preq = q;
q = q->next;
}
}
p = p->next;
}
}
还有错啊?
数据结构对单链表进行数据排序 http://bbs.csdn.net/topics/392201633