#include <bits/stdc++.h>
using namespace std;
typedef struct Node{
int data;
Node *prev,*next;
}Node,*LinkList;
bool init(LinkList &L){
L=(Node *)malloc(sizeof(Node));
if(L==nullptr)return false;
L->next=L;
L->prev=L;
return true;
}
bool insert(LinkList &L,int i,int e){
int pos=0;
Node *p=L;
while(p!=nullptr&&pos<i-1){
pos++;p=p->next;
}
if(p==nullptr)return false;
Node *s=(Node *)malloc(sizeof(Node));
s->data=e;
s->next=p->next;
s->prev=p;
p->next->prev=s;
p->next=s;
return true;
}
bool deletes(LinkList &L,int i){
int pos=0;
Node *p=L;
while(p!=nullptr&&pos<i){
pos++;p=p->next;
}
if(p==nullptr)return false;
p->next->prev=p->prev;
p->prev->next=p->next;
free(p);
return true;
}
void print(LinkList L){
Node *p=L->next;
while(p!=L){
cout<<p->data<<' ';
p=p->next;
}
cout<<'\n';
}
int main() {
LinkList L;
init(L);
int op,i,e;
while(~scanf("%d",&op)){
if(op==0){
print(L);
}
if(op==1){
cin>>i>>e;
insert(L,i,e);
}
if(op==2){
cin>>i;
deletes(L,i);
}
}
    return 0;
}
 

0.0分

0 人评分

  评论区

  • «
  • »