
- #include
- using namespace std;
- const int N=1e5+10;
- int a[N];
- int e[N],ne[N],idx;
- int head,head2;
-
- void init()
- {
- head=-1;
- head2=-1;
- idx=0;
- }
-
- void add(int a,int b) //把b插入到a后面
- {
- e[idx]=b;
- ne[idx]=ne[a];
- ne[a]=idx;
- idx++;
- }
-
- void add_head(int b) //把b插入到头结点后面
- {
- e[idx]=b;
- ne[idx]=head;
- head=idx++;
- }
-
-
- void add_head2(int b)
- {
- e[idx]=b;
- ne[idx]=head2;
- head2=idx++;
- }
-
- void remove(int k) //删除第k个插入的数后面的数
- {
- ne[k]=ne[ne[k]];
- }
-
- void remove_head() //删除头结点后面的数
- {
- head=ne[head];
- }
-
- int main()
- {
- int n,l,r;
- cin>>n>>l>>r;
-
- init();
- for(int i=0;i
- {
- scanf("%d",&a[i]);
- }
-
- for(int i=0;i
- {
- if(i==0)
- {
- add_head(i);
- }
- else
- {
- add(i-1,i);
- }
- }
-
-
- //下面进行头插法
- int p=idx; //头插法由于是倒过来插的,所以idx是第一个插入的元素,也就是最后一个元素
-
-
- //我们把l到r的这一段单独拿出来然后头插到 head2指引的链表中-----------
- l--;
- r--;
- for(int i=l;i!=r+1&&i!=-1;i=ne[i])
- {
- int j=e[i];
- add_head2(j);
- }
- //----------------------------------------------------------------------
-
-
- if(l==0) //如果l是head指针指向的节点
- {
- head=head2;
- ne[p]=ne[r];
- }
- else //如果l不是head指针指向的节点
- {
- ne[l-1]=head2;
- ne[p]=ne[r];
- }
-
-
- for(int i=head;i!=-1;i=ne[i])
- {
- int j=e[i];
- cout<" ";
- }
- cout<
-
- return 0;
- }
-
相关阅读:
2、SySeVR环境配置(下)
Java项目:JSP蛋糕甜品店管理系统
2022-2028年全球与中国工业分析软件市场现状及未来发展趋势分析报告
pdd.order.information.get拼多多店铺订单详情接口(店铺订单交易接口,店铺订单明文接口,店铺订单解密接口)代码对接教程
【校招VIP】java语言考点之分代回收机制
移动协同办公系统,让工作更轻松,生活更美好!
vue独立提供模板下载功能
Java面试问题
ElementUI之登陆+注册
非零基础自学Java (老师:韩顺平) 第7章 面向对象编程(基础部分) 7.4 方法递归调用
-
原文地址:https://blog.csdn.net/bei2002315/article/details/127842212
-
最新文章
-
沪漂五周年了:我越来越迷茫了
Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
MySQL-Seconds_behind_master的精度误差
[MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
Agent OS :五种驯服不确定性的范式
PortSwigger SQL注入LAB11
数据库即时编译JIT
[Begin]AI Learn Data Day 0
深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU