程序运行出错运行不下去

#include
#include
using namespace std;
//双向链表结构
typedef struct Node{
struct Node *next;
struct Node *prior;
int data;
}Dnode,*Linklist;
//创建带有头结点的双向链表
int Creatlist(Linklist &L,int n){
int x;
Linklist p;
L=(Linklist)malloc(sizeof(Linklist));
if(L==NULL)
{
cout<<"头结点分配失败"< }
L->data=n;
L->next=NULL;
L->prior=NULL;
for(int i=0;i {
p=(Linklist)malloc(sizeof(Linklist));
cin>>x;
p->data=x;
p->next=L->next;
L->next=p;
p->prior=L;
p->next=NULL;
}
return 1;
}
//插入操作
int Insertlist(Linklist &L,int i,int e){
Linklist p,s;
p=L;
int n=L->data;int j=0;
if(i<=0||i>n)
cout<<"ERROR"< while(p&&j {
p=p->next;
j++;
}
s=(Linklist)malloc(sizeof(Linklist));
if(s==NULL)
cout<<"ERROR"< s->data=e;
s->prior=p->prior->prior;
s->next=p;
return 1;
}
//删除操作
int Deletdlist(Linklist &L,int i){
Linklist p,s;
p=L;int j=0;
int n=L->data;
if(i<=0||i>n)
cout<<"ERROR"< while(p&&j {
p=p->next;
j++;
}
s=(Linklist)malloc(sizeof(Linklist));
if(s==NULL)
cout<<"ERROR"< s=p->prior;s->next=p;
p->prior=s->prior;
s->prior->next=p;
free(s);
return 1;
}
int Showlist(Linklist &L){
int n;
Linklist p;
p=L;
if(L==NULL)
cout<<"this list is no exist"< n=L->data;
for(int i=0;i {
p=p->next;
cout<data< }
return 1;
}
void main()
{
int n,x,b;
Linklist L;
cout cin>>n;
getchar();
Creatlist(L,n);
cout<<"输入要插入的元素和位置"< cin>>x>>b;
Insertlist(L,b,x);
Showlist(L);
}

创建的时候代码就不对,你的L就没变过,怎么能形成链表呢。

 for(int i=0;i {
p=(Linklist)malloc(sizeof(Linklist));
cin>>x;
p->data=x;
p->next=L->next;
L->next=p;
p->prior=L;
p->next=NULL;
}

参见http://www.cnblogs.com/Akagi201/archive/2012/03/22/2411054.html

嗯嗯 已经知道错在哪儿了 谢谢