#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分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论