#include"stdio.h"
#include"stdlib.h"
typedef int datatype;
struct Node
{
datatype data;
struct Node *prior,*next;
};
typedef struct Node *List;
List MakeEmpty(List L)
{
if(L==NULL)
{
L->next=NULL;
return L;
}
List p;
p=L->next;
while(L->next!=NULL && p->next!=NULL )
{
p->next->prior=L;
L->next=p->next;
free(p);
p=L->next;
}
free(p);
L->next=NULL;
return L;
}
List InitList(List L)
{
L=(List)malloc(sizeof(struct Node));
L->next=NULL;
return L;
}
List Insert(List L,datatype n)
{
List p;
p=(List)malloc(sizeof(struct Node));
p->data=n;
if(L->next==NULL)
{
L->next=p;
p->prior=L;
p->next=NULL;
}
else
{
L->next->prior=p;
p->prior=L;
p->next=L->next;
L->next=p;
}
return L;
}
void PrintList(List L)
{
if(L->next==NULL)
{
printf("kong \n");
exit(1);
}
List p;
p=L->next;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
void main()
{
List L;
L=InitList(L);
// L=MakeEmpty(L);
int i;
for(i=0;i<10;i++)
{
L=Insert(L,i);
PrintList(L);
}
L=MakeEmpty(L);
PrintList(L);
}
双链表
最新推荐文章于 2023-03-11 12:19:57 发布