双向链表创建
/**/
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node* next;
struct node* prior;
}DLinklist;
bool initList(DLinklist* head);
bool createList(DLinklist* head,int n);
int main()
{
DLinklist* head=NULL;
DLinklist* p,*q;
int n;
initList(head);
printf("请输入链表长度:");
scanf("%d",&n);
createList(head,n);
return 0;
}
bool initList(DLinklist* head) //初始化链表
{
head=(DLinklist*)malloc(sizeof(DLinklist));
if(!head)
return false;
head->next=head;
head->prior=head;
return true;
}
bool createList(DLinklist* head,int n)//创建链表
{
DLinklist* p,*q;
p=head;
int i,e;
for(i=1;i<=n;i++)
{
printf("请输入第%d个节点的数据",i);
scanf("%d",&e);
q=(DLinklist*)malloc(sizeof(DLinklist));
if(!q)
{
printf("error");
return false;
}
q->data=e;
q->next=p->next;
p->next=q;
q->prior=p;
q->next=NULL;
p=q;
}
return true;
}
输入元素的时候,总是输完一个数据后就死了,哪里有问题啊,新人积分不多