#include <stdio.h>
#include <stdlib.h>
#define TRUE 1
#define OK 1
#define FALSE 0
#define OK 1
#define ERROR
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
typedef int ElemType;
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*next;
void CreateList_l(LinkList &l,int n){
LinkList p;
ElemType i;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
for(i=n;i>0;--i){
p=(LinkList)malloc(sizeof(LNode));
scanf("%d",&p->data);
p->next=L->next;
L->next=p;
}
}
Status GetElem(LinkList l,int i,ElemType &e){
LinkList p;
ElemType j;
p=L->next;
j=1;
while(p&&j<i){
p=p->next;
j++;
}
if(!p||j>i) return ERROR;
e=p->data;
return OK;
}
Status ListInsert_L(LinkList &L,int i,ElemType e){
LinkList s,p;
ElemType j;
p=L;j=0;
while(p&&j<i-1) {p=p->next;++j;}
if(!p||j>i-1) return ERROR;
s=(LinkList)malloc(sizeof(LNode));
s->data=e;
s->next=p->next;
p->next=s;
return OK;
}
Status ListDelete(LinkList &L,int i,ElemType &e){
LinkList p,q;
ElemType j;
p=L;j=0;
while(p->next&&j<i-1) {p=n-next;++j;}
if(!p-next||j>i-1) return ERROR;
q=p->next;
p->next=q->next;
e=p->data;
free(q);
return OK;
}
void main(){
LinkList L,p;
ElemType i,n,e;
scanf("%d",&n);
CreateList(L,n);
for(p=L->next;p;p=p->next){
printf(p->data);
printf("/n");
scanf("%d",&i);
GetElem(L,i,e);
printf("%d",e);
printf("/n");
scanf("%d%d",&i,&e);
ListInsert_L(L,i,e);
for(p=L-next;p;p=p->next)
printf("%d",p->data);
printf("/n");
scanf("%d",&i);
ListDelete_L(L,i,e);
printf("%d",e);
printf("/n");
for(p=L->next;p;p=p->next)
printf("%d",p->data);
}
}