#include<stdio.h>
#include<stdlib.h>
#define ElemType int
#define ERROR 0
#define OK 1
typedef int Status;
typedef struct lnode{
ElemType data;
struct lnode *next;
struct lnode *prior;
}LNode,*DuLinkList;
Status GetElem(DuLinkList L,int i,ElemType &e)
{
int j;
DuLinkList p;
p=L;
while(p&&j<i)
{
j++;
p=p->next;
}
if(!p||j>i)
return ERROR;
e=p->data;
return OK;
}
void DulInsert(DuLinkList &L,int i,ElemType e)//插入元素不能为最后一个
{
DuLinkList p,s;
int j;
s=(DuLinkList)malloc(sizeof(LNode));
p=L;
j=1;
while(j<i)
{
p=p->next;
j++;
}
s->next=p->next;
p->next->prior=s;
p->next=s;
s->prior=p;
s->data=e;
}
void DuLinkDel(DuLinkList &L,int i,ElemType &e)
{
DuLinkList p;
int j;
j=0;
p=L;
while(j<i&&p)
{
p=p->next;
j++;
}
p->prior->next=p->next;
p->next->prior=p->prior;
p->data=e;
}
Status Create_List(DuLinkList &L,int n)
{
DuLinkList p,s;
int i;
L=(DuLinkList)malloc(sizeof(LNode));
if(!L)exit(0);
L->next=NULL;
L->prior=NULL;
s=L;
for(i=1;i<=n;i++)
{
p=(DuLinkList)malloc(sizeof(LNode));
if(!p)exit(0);
scanf("%d",&p->data);
s->next=p;
p->next=NULL;
p->prior=s;
s=p;
}
return OK;
}
void main()
{
DuLinkList L;
ElemType e;
int n;
e=10;
scanf("%d",&n);
if(Create_List(L,n))
{
DuLinkDel(L,1,e);
DulInsert(L,n-1,e);
while(L->next)
{
L=L->next;
printf("%d ",L->data);
}
}
}