数组模拟单链表

news/2025/2/27 11:13:12/文章来源:https://www.cnblogs.com/electricity/p/18740566

题目

代码

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 100010;
int head, idx, e[N], ne[N];
// 两个值,两个数组// head:第一个节点的下标(表示头结点的下标)
// idx:已经存储了几个数(到了第几个数了)
// e[i]:存储数的值(表示节点i的值)
// ne[i]:下一个节点的下标(表示节点i)void init()
{head = -1;idx = 0;
}void insert_head(int x)
{e[idx] = x;ne[idx] = head;head = idx;idx++;
}void insert_value(int k, int x)
{e[idx] = x;ne[idx] = ne[k];ne[k] = idx;idx++;
}void erase_k(int k)
{ne[k] = ne[ne[k]];
}void output()
{for (int i = head; i != -1; i = ne[i]){cout << e[i] << " ";}
}
int main()
{int m;cin >> m;init();while (m--){char c;cin >> c;if (c == 'H'){int x;cin >> x;insert_head(x);}else if (c == 'I'){int k, x;cin >> k >> x;insert_value(k - 1, x); // 因为下标从0开始,所以k-1。(0表示第一个数)}else{int k;cin >> k;if (k == 0) // 这里要有一个特判。(删除头结点时要重新创建头结点,头结点也就是第一个数){head = ne[head];}else{erase_k(k - 1); // 因为下标从0开始,所以k-1。(0表示第一个数)}}}output();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/890541.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES-8.17.2版本集群搭建

前提工作准备  Linux 3台 16GB运行内存 8核 50GB磁盘  JDK17 环境配置  elasticsearch-8.17.2-linux-x86_64.tar.gz 安装包2.集群规划  在 ES 集群中,不同节点可承担不同角色: **主节点(Master Node)**:负责集群管理、节点选举、索引元数据管理。建议至少配置 3 个…

第9章 shell编程

Linux系统结构 Linux操作系统是一种开放源代码的类UNIX操作系统,它的结构分为内核、Shell和应用程序三个层次。内核层内核是Linux系统的核心部分,它负责管理系统各种硬件设备、文件系统、内存管理和进程管理等核心任务。Linux内核设计了良好的模块化结构,可以动态地加载和卸…

第2章 磁盘与文件管理

磁盘管理 windows和Linux磁盘管理的区别 windows资源管理方式系统一般安装在C盘 C盘下的"Windows"目录是操作系统的核心 C盘下的"Program Files"目录下安装软件 C盘下的"用户"目录是所有的用户,包括超级管理员也在其中 windows操作系统分为C盘、…

第3章 系统命令

系统当前时间 date命令:切换用户 su 用户名sudo 命令:表示使用超级管理员身份执行该命令,如果你当前不是管理员,希望以管理员身份执行某个命令时,使用sudo,需要输入超级管理员的密码: ​​ echo命令 输出字符串 echo "Hello, world!"这将会输出 Hello, world!…

https://avoid.overfit.cn/post/bad10ed894bd43c086e3ef9de7478bea

特征选择作为机器学习工作流程中的关键环节,对模型性能具有决定性影响。Featurewiz是一个功能强大的特征选择库,具备以下核心能力:高度自动化的特征选择,仅需少量代码即可完成。 全面的特征工程功能,不仅能够选择特征,还能生成数百个衍生特征并自动筛选最优特征组合。 实…

Redis复习-五种数据类型

String String是Redis中最常见的数据存储类型: 1.其基本编码方式是RAW,基于简单动态字符串(SDS)实现,存储上限为512mb。 2.如果存储的SDS长度小于44字节,则会采用EMBSTR编码,此时object head与SDS是一段连续空间。申请内存时只需要调用一次内存分配函数,效率更高。 3.如…

cfWGBS揭示与年龄和肌萎缩侧索硬化相关cfDNA甲基化变化及组织/细胞溯源

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 游离细胞DNA (Cell-free DNA,cfDNA)是血浆中游离的DNA片段,通常来源于正常细胞更新或病理状态下的细胞死亡。cfDNA已被广泛应用于癌症早期检测、胎儿遗传病诊断、器官移植评估等领域。然而,cfDNA在神经退行…

低代码加速智能制造,兰之天的选择是 NocoBase

兰之天借力 NocoBase,破解中小制造企业数字化转型困局,实现智能制造系统开发周期从数月压缩至数周。智能制造的挑战:数字化转型的必然趋势 在全球制造业加速迈向数字化、智能化的背景下,智能制造已成为提升企业竞争力的关键战略。根据财富商业洞察(Fortune Business Insig…

纷享销客CRM全面评测:纷享销客比销售易差异化对比

企业数字化转型热潮中,CRM是众多企业迈向数字化管理的里程碑。近年来,国产CRM在政策推动下成为大中型企业的首选,也有很多企业选择国产CRM替代国外供应商。国产CRM第一梯队中,纷享销客以其卓越的表现脱颖而出,稳坐头把交椅。IDC发布了最新数据报告《IDC China Semiannual …

ABB机器人平衡缸维修

在现代工业生产中,工业机器人扮演着至关重要的角色。其中,ABB机器人以其高精度、高可靠性而被广泛应用。然而,如同所有机械设备一样,ABB机器人也会出现故障,这就需要专业的维修。一、ABB机器人故障与平衡缸维修的重要性ABB机器人故障的出现会严重影响生产进程。机器人平衡…

python打包工具-Nuitka

nuitka将python源码转成C++(这里得到的是二进制的pyd文件,防止了反编译),然后再编译成可执行文件。提高安全性和运行速度。 github:https://github.com/2267770481/cython_test 安装 pip install nuitka pip install ordered-set # 加速编译 pip install zstandard # onef…

Javaweb中Vue指令的详细解析与应用

在现代Web开发中,Vue.js已经成为了一个非常流行且强大的前端框架,尤其是在JavaWeb项目中,它通过简化DOM操作,提高响应式交互的能力,大大加快了开发速度和提高了用户体验。Vue的核心之一是其指令系统,通过一系列预定义或自定义的指令,开发者可以更加方便地控制页面渲染和…