#include <stdio.h>
#include <stdlib.h>
typedef struct lnode //定义链表
{
int data;
struct lnode *next;
}lnode,*linklist;
void createfifo(linklist &l,int n) //创建先进先出链表函数
{
int i;
linklist p,q;
l=(linklist)malloc(sizeof(lnode));
q=l;
for(i=0;i<n;i++)
{
p=(linklist)malloc(sizeof(lnode));
scanf("%d",&p->data);
q->next=p;
q=p;
}
q->next=NULL;
}
void print(linklist l) //输出函数
{
linklist p;
p=l->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
}
void deletechongfu(linklist &l) //删除重复结点函数
{
linklist p,q;
p=l->next->next;
q=l->next;
while(p)
{
if(p->data==q->data)
{
q->next=p->next;
p=p->next;
}
else
{
q->next=p;
q=p;
}
}
}
int main()
{
int n;
linklist l;
printf("请输入链表元素个数:\n");
scanf("%d",&n);
printf("请输入元素:\n");
createfifo(l,n);
printf("链表为:\n");
print(l);
deletechongfu(l);
printf("删除重复元素之后的链表为:\n");
print(l);
}