为什么不能实现功能?
#include "stdio.h"#include "stdlib.h"
#define OK 1
#define NULL 0
#define ERROR -1
typedef int ElemType;
typedef int Status;
typedef struct node
{
int data;
struct node *prior;
struct node *next;
}Lnode,*DuLinklist;
void creat(DuLinklist &L,int m)
{
DuLinklist p,q;
int i;
L=(DuLinklist)malloc(sizeof(Lnode));
L->next=NULL;
q=L;
for(i=1;i<=m;i++)
{
p=(DuLinklist)malloc(sizeof(Lnode));
printf("input number:\n");
scanf("%d",&p->data);
p->next=NULL;
p->prior=q;
q->next=p;
q=p;
}
}
void print(DuLinklist L)
{
DuLinklist p;
p=L->next;
while(p)
{
printf("%5d",p->data);
p=p->next;
}
printf("\n");
}
Status insert(DuLinklist &L,int i,ElemType e)//这个插入节点的功能为什么不能运行?代码该如何修改?
{
DuLinklist p;
DuLinklist s;
p=L;
int j=0;
while(p&&j<i-1)
{
p=p->next;
++j;
}
if(!p||j>i-1)
{
return ERROR;
}
s=(DuLinklist)malloc(sizeof(Lnode));
s->data=e;
s->prior=p->prior;
p->prior->next=s;
s->next=p;
p->prior=s;
return OK;
}
int main(int argc, char* argv[])
{
DuLinklist L;
int i=0;
int e=0;
creat(L,5);
print(L);
printf("\n");
printf("input i:\n");
scanf("%d",&i);
printf("input e:\n");
scanf("%d",&e);
insert(L,i,e);
print(L);
return 0;
}