#include<stdlib.h>
#include<stdio.h>
//定义结构体
typedef struct Node
{
int data;
struct Node* link;
}Node,*List;
//创建链表函数
void CreateList(List L, int k)
{
Node *node,*rear=L;
//头插法
/*for(int i=0;i<k;i++)
{
node=(Node*)malloc(sizeof(Node));
scanf("%d",&node->data);
node->link=L->link;
L->link=node;
}*/
//尾插法
for(int i=0;i<k;i++)
{
node=(Node*)malloc(sizeof(Node));
scanf("%d",&node->data);
rear->link=node;
rear=node;

}
rear->link=NULL;

}
void Print(List L)
{
Node* node;
node=L->link;
while(node!=NULL)
{
printf("%d ",node->data);
node=node->link;
}
printf("\n");
}
void Delete(List L)
{
int arr[1024]={0};
//设置前后指针
Node* p1=L;
Node* p2=L->link;
while(p2)
{
if(arr[abs(p2->data)]==0)
{
arr[abs(p2->data)]=1;
p1=p2;
p2=p2->link;

}
else
{
p1->link=p2->link;
free(p2);
p2=p1->link;
}
}
}
int main()
{
List L=(List)malloc(sizeof(Node));
L->link=NULL;
CreateList(L,5);
Print(L);
Delete(L);
Print(L);
return 0;
}


 2015 41_尾插法