C++代码编写的
#include<iostream>
#include<string>
using namespace std;
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
} LinkList;
void CreatListR(LinkList *&L,ElemType a[],int n)
{
LinkList *s,*r;
int i;
//L=(LinkList *)malloc(sizeof(LinkList));
L=new LinkList();
r=L;
for(i=0;i<n;i++)
{
//s=(LinkList *)malloc(sizeof(LinkList));
s=new LinkList();
s->data=a[i];
r->next=s;
r=s;
}
r->next=NULL;
}
void DispList(LinkList *L)
{
LinkList *p=L->next;
while(p!=NULL)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
}
int ListInsert(LinkList *&L,int i,ElemType e)
{
int j=0;
LinkList *p=L,*s;
while(j<i-1&&p!=NULL)
{
j++;
p=p->next;
}
if(p==NULL)
return 0;
else
{
s=new LinkList();
s->data=e;
s->next=p->next;
p->next=s;
return 1;
}
}
int ListDelete(LinkList *&L,int i)
{
int j=0;
LinkList *p=L,*q;
while(j<i-1&&p!=NULL)
{
j++;
p=p->next;
}
if(p==NULL)
{
return 0;
}
else
{
q=p->next;
if(q==NULL)
{
return 0;
}
p->next=q->next;
int a=q->data;
free(q);
return a;
}
}
int main()
{
LinkList *L,*L1;
int a[]={1,5,7,9,12,18,19,20,30,43,45,56,41,42,78};
int n=15,i,x,y,j;
CreatListR(L,a,n);
DispList(L);
cout<<"请输入i"<<endl;
cin>>i;
cout<<"请输入x"<<endl;
cin>>x;
ListInsert(L,i,x);
DispList(L);
cout<<"请输入j"<<endl;
cin>>j;
y=ListDelete(L,j);
DispList(L);
cout<<y<<endl;
return 0;
}