大家帮看看,链表的,哪里出现了错误?
程序代码:#include "stdio.h"
#include "stdlib.h"
#define ERROR 0
#define OK 0
typedef int Elemtype;
typedef int status;
typedef struct LNode{
Elemtype date;
struct LNode *next;
}LNode,*LinkList;
//建立链表
void CreateList(LinkList &L){
LinkList p;int i,n;
printf("请输入要建立链表的长度\n");
scanf("%d",&n);
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
for(i=n;i>0;--i){
p=(LinkList)malloc(sizeof(LNode));
scanf("%d",&p->date);
p->next=L->next;L->next=p;
}
}
//输出链表
void PrintList(LinkList L){
LinkList p;
for(p=L->next;p;p=p->next)
printf("%5d",p->date);
}
//在i位置插入元素e
status ListInsert(LinkList &L,int i,Elemtype e){
LinkList p,s;int j;
p=L;j=0;
while(p&&j<i-1){p=p->next;++j;}
if(!p||j>i-1)return ERROR;
s=(LinkList)malloc(sizeof(LNode));
s->date=e;s->next=p->next;
p->next=s;
return OK;
}
//删除第i个元素
status ListDelete(LinkList &L,int i,Elemtype &e){
LinkList p,q;int j;
p=L;j=0;
while(p->next&&j<i-1){p=p->next;++j;}
if(!(p->next)||j>i-1) return ERROR;
q=p->next;p->next=q->next;
e=q->date;free(q);
return OK;
}
void main(){
LinkList L;Elemtype e;int i,n;
CreateList(L);
PrintList(L);
printf("\n输入1则插入元素,输入2则删除元素\n");
scanf("%d",&n);
switch(n){
case 1:
printf("请输入要插入元素的位置");scanf("%d",&i);
printf("请输入要插入的元素");scanf("%d",&e);
ListInsert(L,i,e);
PrintList(L);break;
case 2:
printf("请输入要删除元素的位置");scanf("%d",&i);
ListDelete(L,i,e);
PrintList(L);}
} 怎么不能 执行?






