#include<iostream>
#include<malloc.h>
using namespace std;
int a=0,b=0;
struct node
{
int data;
struct node *next;
};
struct node *creat(int n)
{
struct node *head,*tail,*p;
int i;
head=(struct node *)malloc(sizeof(struct node));
head->next=NULL;
for(i=1;i<=n;i++)
{
p=(struct node *)malloc(sizeof (struct node ));
cin>>p->data;
p->next=head->next;
head->next=p;
}//游动指针p指向p的前一个
return head;
};
void del(struct node *head,int m)
{
struct node *p,*p2,*p1;
p=head->next;
while(p!=NULL)
{
p1=p;
p2=p->next;
while(p2!=NULL)
{
if(p->data==p2->data)
{
p1->next=p2->next;
p2=p2->next;
m--;
}
else
{
p2=p2->next;
p1=p1->next;
}
}
p=p->next;
}
cout<<m<<endl;
}
void display(struct node *head1)
{
struct node *q;
q=head1->next;
while(q!=NULL)
{
cout << q->data;
if(q->next!=NULL)
cout<<" ";
q=q->next;
}
cout<<endl;
}
int main()
{
int n,h,m;
struct node *head1,*head2;
cin>>m;
head1=creat(m);
cout <<m<<endl;
display(head1);
del(head1,m);
display(head1);
return 0;
}
2122数据结构实验之链表七:单链表中重复元素的删除
最新推荐文章于 2019-08-30 21:23:36 发布