原题链接:数据结构-双向循环链表
#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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复