2015 41

#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;
}

 

 

posted @ 2021-09-24 00:07  磐正  阅读(16)  评论(1)    收藏  举报