AcWing 826. 单链表(C++)

news/2024/11/25 21:59:37/

目录

1.题目描述

2.AC


1.题目描述

826. 单链表

实现一个单链表,链表初始为空,支持三种操作:

  1. 向链表头插入一个数;
  2. 删除第 kk 个插入的数后面的数;
  3. 在第 kk 个插入的数后插入一个数。

现在要对该链表进行 MM 次操作,进行完所有操作后,从头到尾输出整个链表。

注意:题目中第 kk 个插入的数并不是指当前链表的第 kk 个数。例如操作过程中一共插入了 nn 个数,则按照插入的时间顺序,这 nn 个数依次为:第 11 个插入的数,第 22 个插入的数,…第 nn 个插入的数。

输入格式

第一行包含整数 MM,表示操作次数。

接下来 MM 行,每行包含一个操作命令,操作命令可能为以下几种:

  1. H x,表示向链表头插入一个数 xx。
  2. D k,表示删除第 kk 个插入的数后面的数(当 kk 为 00 时,表示删除头结点)。
  3. I k x,表示在第 kk 个插入的数后面插入一个数 xx(此操作中 kk 均大于 00)。

输出格式

共一行,将整个链表从头到尾输出。

数据范围

1≤M≤1000001≤M≤100000
所有操作保证合法。

输入样例:

10
H 9
I 1 1
D 1
D 0
H 6
I 3 6
I 4 5
I 4 5
I 3 4
D 6

输出样例:

6 4 6 5

2.AC

 

#include <iostream> 
#include <cstdio>
using namespace std;
const int N = 1e5+10;
int m;
int head, idx, e[N], ne[N];
void init () {head = -1;idx = 0;
}
void add_to_head (int x) {e[idx] = x;ne[idx] = head;head = idx++;
}
void remove (int k) {ne[k-1] = ne[ne[k-1]];
}
void add(int k, int x) {e[idx] = x;ne[idx] = ne[k-1];ne[k-1] = idx++;
}
int main () {init();scanf("%d", &m);for (int i = 0; i < m; i++) {char ch;cin>>ch;if (ch == 'H') {int x;scanf("%d", &x);add_to_head(x);} else if (ch == 'D') {int k;scanf("%d", &k);if (!k) head = ne[head];else remove(k);} else {int k, x;scanf("%d%d", &k, &x);add(k, x);}}for (int i = head; i != -1; i = ne[i]) {printf("%d ", e[i]);}return 0;
}


http://www.ppmy.cn/news/75041.html

相关文章

2、Ray的基本概念和核心组件

2、Ray的基本概念和核心组件 导航 1.简介和背景 2.Ray的基本概念和核心组件 3.分布式任务调度和依赖管理 4.对象存储和数据共享 5.Actor模型和并发编程 6.Ray的高级功能和扩展性 7.使用Ray构建分布式应用程序的案例研究 8.Ray社区和资源 9.核心框架介绍 10.扩展1

04 面向对象(查漏补缺)

this的作用是什么&#xff1f;都有哪些用途&#xff1f; 表示初始化对象当前本身,内部存在地址,只有创建对象的时候才有this 1.调用成员变量,解决成员变量和局部变量的二义性 public Person(String name, int age) {this.name name; //[1] 这是给的创建的对象的字段,不是本…

电脑安装软件时,如何避免捆绑安装?

在网络上非正规网站下载安装软件时&#xff0c;经常会遇到捆绑安装的情况。你明明下载了一个软件&#xff0c;电脑上却多出好几个。那么我们在安装软件时&#xff0c;如何才能避免捆绑安装呢&#xff1f; 什么是捆绑安装&#xff1f; 捆绑安装是指用户安装一个软件时&#xff…

AC规则-2

基于RAM的远程接口 安全元件的访问规则可以通过远程应用程序管理 (RAM) 更新命令进行管理。 因此&#xff0c;ARA-M 和 ARA-C 各自提供一个远程接口&#xff0c;允许在 ARA 中存储或删除访问规则。 访问控制数据的任何远程管理都应仅通过 [GP 卡规范] 定义的安全通道协议来完成…

[VPX611]基于 6U VPX 总线架构的SATA3.0 高性能数据存储板

板卡概述 VPX611 是一款基于6UVPX 总线架构的高性能数据存储板&#xff0c;该板卡采用2 片XilinxKintex-7 系列FPGA 作为主控单元&#xff0c;FPGA 内嵌RAID 控制器&#xff0c;最大支持8 个mSATA 盘&#xff0c;最大存储容量可以达到8TByte&#xff0c;持续数据写入带宽可以达…

人工智能专栏第七讲——自然语言处理

自然语言处理(Natural Language Processing,NLP)是一种研究计算机如何处理和理解人类语言的学科。随着人工智能的发展,自然语言处理已经成为一个越来越重要的领域,涉及到自然语言理解、自然语言生成、语音识别、机器翻译等方面。 自然语言处理的主要挑战是语言的复杂性和…

Kuberntes云原生实战11 部署一个Deployment

大家好,从今天开始我们将正式部署实际应用。 上篇文章提到Kubenetes中有四大核心组件:Pod、Deployment、Service、ConfigMap,其中Pod是不会单独部署的,那接下来我会通过三篇文章带大家先熟悉如何部署这些基础组件,然后再通过真实项目进行部署。 今天我们先从部署Deploym…

2分钟快速上手工作流的创建与运行

前段时间&#xff0c;偶然发现一款低代码产品&#xff0c;工作流很突出&#xff0c;至少我觉得&#xff0c;设计颇有精妙之处。 可视化工作流是实现看板的第一步&#xff0c;要想业务人员也能了然其中的运行逻辑&#xff0c;这款产品可是做到了白痴也看得懂的程度&#xff01;…