程序运行时,总有错,请指教!
#include<iostream.h>
#include<stdlib.h>
#define null 0;
typedef struct Lnode
{
    int data;
    Lnode* next;
} *Q;
void initL(Lnode * &L,int A[],int n);
void insert(Lnode * &L,int j,int e);
int dele(Lnode  *&L,int j,int &e);
void display(Lnode * L);
void initL(Lnode  *&L,int A[],int n)
{
    L=(Q)malloc(sizeof(Lnode));
    (*L).data=n;
    (*L).next=null;
    Q p;
    for(register i=0;i<n;i++)
    {
        p=(Q)malloc(sizeof(Lnode));
        (*p).data=A[i];
        (*p).next=(*L).next;
        (*L).next=p;
        L=p;
    }
}
void insert(Lnode * &L,int j,int e)
{
    if(j<0||j>(*L).data+1)
    cout<<"erro"<<endl;
    else
    {
        Q p=(*L).next;
        for(register i=2;i<j-1;i++)
        {
            p=(*p).next;
            Q q;
            q=(Q)malloc(sizeof(Lnode));
            (*q).data=e;
            (*q).next=(*p).next;
            (*p).next=q;
        }
    }
}
int dele(Lnode * &L,int j,int &e)
{
    int i=0;
    Q s,p;
    p=L;
    while((*p).next && i<j-i)//?
    {
        p=(*p).next;
        i++;
    }
    s=(*p).next;
    (*p).next=(*s).next;
    e=(*s).data;
//    cout<<e;
    free(s);
    return e;
}
void display(Lnode * L)
{
    while((*L).next)//?
        cout<<(*L).next;
}
void main()
{
    int A[5],e,n;
    cout<<"Please input the data:"<<endl;
    for(register j=0;j<5;j++)
        cin>>A[j];
    Lnode* L;
    initL( L, A, 5);//!    
    cout<<(*L).data;
    display( L);
    insert(L, 2,88);
    display( L);//!
    n=dele( L, 1,e);//!
    display( L);//!
}







[em12]