大家帮看看,链表的,哪里出现了错误?
											 程序代码:
程序代码:#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);}
} 怎么不能 执行?										
					
	


 
											





 
	    

 
	