单链表的基本操作(数据结构)

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define OK 1
#define NULL 0
#define error 0
typedef int elemtype;
typedef int status;
typedef struct lnode{
elemtype data;
struct lnode *next;
}lnode,*linklist;
status linklist_create(linklist &L,int n)
{ elemtype node;
L=(linklist)malloc(sizeof(lnode));
L->next=NULL;
printf("\n请逆位序输入数据元素值:\n");
scanf("%d",&node);
for(int i=0;i<n;i++)
{
linklist p=(linklist)malloc(sizeof(lnode));
if(!p)
return error;
p->data=node;
p->next=L->next;
L->next=p;
scanf("%d",&node);
}
return OK;
}
status linklist_Insert(linklist &L, int i, elemtype e){
linklist head=L,s;
int j=0;
while(head&&j<i-1)
{
head=head->next;
++j;
}
if(!head||j>i-1)
return 0;
s=(linklist)malloc(sizeof(lnode));
s->data=e;
s->next=head->next;
head->next=s;
return OK;
}
status linklist_Delete(linklist &L, int i, elemtype &e)
{
linklist p=L,q; int j=0;
while(p->next&&j<i-1)
{
p=p->next;
++j;
}
if(!p||j>i-1)
return 0; q=p->next;
p->next=q->next;
e=q->data;
free(q);
return OK;
}
status linklist_Locate(linklist L,int i, elemtype &e){
linklist p=L->next; int j=1;
while(p&&j<i) {
p=p->next;
j++; }
if(!p||j>i)
return error;
e=p->data;
return OK;
}
void linklist_Out(linklist L)
{
linklist p=L->next;
while(p) {
printf("%4d",p->data);
p=p->next;
}
printf("\n");
}
status main()
{
int n,i;
elemtype e;
linklist L;
printf("Please input the length:");
scanf("%d",&n);
linklist_create(L,n);
printf("The Linklist is:\n");
linklist_Out(L);
printf("Please input the insert position:\n");
scanf("%d",&i);
printf("Please input the insert elem:\n");
scanf("%d",&e);
if(!linklist_Insert(L,i,e))
printf("插入失败!\n");
else {
printf("The list after inserted is:\n");
linklist_Out(L);
}
printf("Please input the delete position:\n");
scanf("%d",&i);
if(!linklist_Delete(L,i,e))
printf("删除失败!\n");
else{
printf("This is deleted :%d",i);
printf("The list after deleted is:\n");
linklist_Out(L);
}
printf("Please input the position you want to search:\n");
scanf("%d",&i);
if(!linklist_Locate(L,i,e))
printf("查找失败!");
else{
printf("查找成功!The %d th elem is %d:\n",&i,&e);
}
}
为什么链表输出不了

好多地方调用输出,到底是哪一步不能输出?