单链表的建立,请问哪错了?为什么?
#include <stdio.h>#include <malloc.h>
//数据类型
typedef struct Lnode
{
int data;
struct Lnode *next;
}Lnode,*LinkList;
//建立带头结点的线性表(头插法)
void creatList(LinkList L,int n)
{
int x,i=0;
Lnode *p;
L=(LinkList)malloc(sizeof(Lnode));
L->next=NULL;
p=(Lnode *)malloc(sizeof(Lnode));
printf("please enter the number:\n");
while(p!=NULL&&i<=n){
scanf("%d ",&x);i++;printf("%d \n",i);
p->data=x;
p->next=L->next;
L->next=p;
p=(Lnode *)malloc(sizeof(Lnode));
}
}
//删除操作
void DeleteList(LinkList L,int e)
{
printf("aaa ");
Lnode *p,*pre;
pre=L;
p=L->next;
while(p!=NULL){
if(p->data==e){pre->next=p->next;free(p);p=pre->next;}
else{
p=p->next;pre=pre->next;}
}
}
//打印输出
void Print(LinkList L)
{
printf("ddd ");
L=L->next;
while(L!=NULL){printf("%d ",L->data);L=L->next;}
}
int main()
{
void creatList(LinkList ,int);
void DeleteList(LinkList ,int);
void Print(LinkList L);
LinkList L;
creatList(L,7);
DeleteList(L,3);
Print(L);
return 0;
}