本帖最后由 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);
- }
復制代碼
|