主题:[讨论]求助!请网友帮忙找错
程序运行时,总有错,请指教!
#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]
#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]