#include<stdio.h>
#include<stdlib.h>
struct node{ //双链表的头插法
int num ;
node *pre;
node *next;
};
int main()
{
node *head = (node *)malloc(sizeof(node));
head->num = 0;
head->pre = NULL;
head->next = NULL;
int m,n;
node *p;
scanf("请输入若干个数:");
while(1)
{
scanf("%d",&m);
if(m==0)
{
break;
}else{
p = (node *)malloc(sizeof(node));
p->num = m;
}
if(head->next == NULL) //一定要注意,这里必须做判断 !!!
{ //插入第一个结点的方法和其他结点的方法不一样!
head->next = p;
p->pre = head;
p->next = NULL;
}else{
p->next = head->next;
p->next->pre = p;
head->next = p;
p->pre = head;
}
}
printf("构建的双链表如下:\n");
p= head->next;
while(p)
{
printf("%d\t",p->num);
p = p->next;
}
return 0;
}