标题:
C++语言链表删除重复结点
[打印本页]
作者:
daming
时间:
2014-12-30 01:54
标题:
C++语言链表删除重复结点
本帖最后由 daming 于 2014-12-30 02:14 编辑
#include<iostream.h>
struct link
{
int data;
link *next;
};
link *rcreat() //尾插法建立单链表
{
link *s,*p,*r; int i;
p=r=new link; p->next=NULL;
cin>>i;
while(i){
s=new link; s->data=i;
r->next=s;
r=s;
cin>>i;
}
r->next=NULL;
return p;
}
void print(link *head) //输出
{
link *p;
p=head->next;
while(p->next!=NULL){
cout<<p->data<<" ";
p=p->next;}
cout<<p->data<<endl;
}
void del(link *head ) // 删除重复的结点
{
link *s,*p,*q;
s=head->next;
while(s!=NULL){
p=s;
q=p->next;
while(1){
if(q==NULL)
break;
if(q->data!=s->data)
{
p=q; q=q->next;
}
else{
p->next=q->next;
delete q;
q=p->next;
}
}
s=s->next;
}
}
void main()
{
link *p;
p=rcreat();
del(p);
print(p);
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1