Skip to content
c
#include<stdio.h>
#include<malloc.h>
typedef struct DuLNode
{
   int data;
   struct DuLNode *prior;
   struct DuLNode *next;
}DuLNode;

DuLNode * InitList()
{
   DuLNode *head,*p,*q;
   int a;
   printf("创建一个链表:\n");
   head=(DuLNode *)malloc(sizeof(DuLNode));
   head->next=NULL;
   head->prior=NULL;
   p=head;
   scanf("%d",&a);
while(a<=0)
{
   printf("您所输入的数据有误,请重新输入\n");
   scanf("%d",&a);
}
while(a>0)
{
   q=(DuLNode *)malloc(sizeof(DuLNode));
   //q->next=NULL;
   q->data=a;
   q->prior=p;
   p->next=q;
   p=p->next;
   //scanf("%d",&a);
}
return head;
}
void insert(DuLNode *p,DuLNode *q)
{
	q->prior=p;
	q->next=p->next;
	(p->next)->prior=q;
	p->next=q;
}
void delete (DuLNode *p)
{
	(p->prior)->next=p->next;
	(p->next)->prior=p->prior;
}
main()
{
	struct DuLNode *a;
	a=InitList();
	printf("输出列表");
	a=a->next;
	while(a!=NULL)
	{
		printf ("%d",a->data );
		a=a->next ;
	}
}