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