原题链接:数据结构-双向循环链表
#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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复