为什么创建单链表之后 的显示操作没有执行啊
#include<iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define MAXSIZE 100
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
typedef int Status;
Status initList(LinkList &L)//初始化
{
L=new LNode;
L->next =NULL;
return OK;
}
//创建单链表
void CreatList_H(LinkList &L,int n)
{
L=new LNode;
L->next=NULL;
for(int i=0;i<n;++i)
{
LinkList p=new LNode;
cin>>p->data;
p->next=L->next;
L->next=p;
}
}
void Print(LinkList L)//打印
{
LinkList p=L->next;
while(p)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
return;
}
Status ListInsert(LinkList &L,int i,ElemType e)//插入元素
{
LinkList p=L;
int j=0;
while(p && (j<i-1))
{
p=p->next;
++j;
}
if(!p||j>i-1) return ERROR;
LinkList s=new LNode;
s->data=e;
s->next=p->next;
p->next=s;
return OK;
}
LNode *LocateElem(LinkList L,ElemType e)//查找
{
LinkList p=L->next;
while(p &&p->data!=e)
p->next;
return p;
}
Status ListDelete(LinkList &L,int i)//删除
{
LinkList p=L;
int j=0;
while((p->next)&&(j<i-1))
{
p=p->next;
++j;
}
if(!(p->next)||(j>i-1)) return ERROR;
LinkList q=p->next;
p->next=q->next;
delete q;
return OK;
}
int main()
{
int n,i;
LinkList L;
ElemType e;
initList(L);
cout<<"请输入元素"<<endl;
cin>>n;
CreatList_H(L,n);
cout<<"链表元素为:"<<endl;
Print(L);
return 0;
}