#include<stdio.h>
#include<stdlib.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2

typedef struct LNode
{
    int data;
    struct LNode *next;
}LNode,*LinkList;

int Initlist_L(LinkList &L)
{
    L=(struct LNode *)malloc(sizeof(struct LNode));
    printf("动态链表已创建\n");
    return -1;
}
int printlist_L(LinkList &L)
{
    if(L->next=NULL)
    {
        printf("空链表\n");
        return 0;
    }
    else
    {
        printf("链表元素如下:");
        printf("%d",L->data);
        printf("\n");
        return 1;
    }
}
int ListInsert_L(LinkList &L,int i,int e)
{
    struct LNode *s;
    struct LNode *p=L;
    int j=0;
    while(p&&j<i-1)
    {
        p=p->next;++j;
    }
    if(!p||j>i-1)return 0;
    s=(LinkList)malloc(sizeof(LNode));
    s->data=e;s->next=p->next;p->next=s;
    return 1;
}
int ListDelete_L(LinkList &L,int i,int &e)
{
    struct LNode *p=L,*q;
    int j=0;
    while(p->next&&j<i-1)
    {
        p=p->next;++j;
    }
    if(!(p->next)||j>i-1)return 0;
    q=p->next;
    p->next=q->next;
    e=q->data;
    free(q);
    return 1;
}
int GetElem_L(LinkList L,int i,int &e)
{
    struct LNode *p=L->next;
    int j=1;
    while(p&&j<i)
    {
        p=p->next;
        ++j;
    }
    if(!p||j>i)return 0;
    e=p->data;
    return 1;
}
void main()
{
    LinkList L;
    int k,i,e;
    do
    {
        printf("\n动态链表的实现\n");
        printf("1--创建一个链表\n");
        printf("2--显示\n");
        printf("3--插入\n");
        printf("4--删除\n");
        printf("5--查找\n");
        printf("0--返回\n");
        printf("请选择主菜单0--5:");
        scanf("%d",&k);
        switch(k)
        {
        case 1:Initlist_L(L);break;
        case 2:printlist_L(L);break;
        case 3:printf("请输入插入元素的位置:");
               scanf("%d",&i);
               printf("请输入插入的元素:");
               scanf("%d",&e);
               ListInsert_L(L,i,e);
               break;
        case 4:printf("请输入删除元素的位置:");
               scanf("%d",&i);
               ListDelete_L(L,i,e);
               break;
        case 5:printf("请输入查找的元素:");
               scanf("%d",&e);
               printf("值为%d的元素在链表中的位置为%d.\n");
               GetElem_L(L,i,e);
               break;
        case 0:printf("返回\n");break;
        default:printf("输入出错.\n");
        }
    }while(k!=0);
}
   不知道是什么错误 调试没有错,也可以运行,但无法输出.
   觉得是构建或是输出函数有问题,但就是不知道怎么改.哪位高手帮忙看一下.