当前位置: 首页 > news >正文

数组模拟单链表

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

向链表头插入一个数;
删除第 k个插入的数后面的数;
在第 k个插入的数后插入一个数。
现在要对该链表进行 M次操作,进行完所有操作后,从头到尾输出整个链表。

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

输入格式
第一行包含整数 M,表示操作次数。接下来 M 行,每行包含一个操作命令,操作命令可能为以下几种:
H x,表示向链表头插入一个数 x。
D k,表示删除第 k个插入的数后面的数(当 k为 0时,表示删除头结点)。
I k x,表示在第 k
个插入的数后面插入一个数 x(此操作中 k 均大于 0)。
输出格式
共一行,将整个链表从头到尾输出。

import java.util.*;
import java.io.*;public class Main {static int INF = 0x3f3f3f3f;static int MOD = 998244353;static BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));static PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));static int n;static int N = 100010;static int head = -1;static int e[] = new int [N];static int ne[] = new int [N];static int idx = 1;static void add_to_head(int x) {e[idx] = x; ne[idx] = head; head = idx ++;}static void add_to_k(int k ,int x) {e[idx] = x; ne[idx] = ne[k]; ne[k] = idx; idx ++;}static void remove(int k) {ne[k] = ne[ne[k]];}public static void main(String[] args) throws IOException {Scanner sc = new Scanner(System.in);n = sc.nextInt();while(n --> 0) {char s = sc.next().charAt(0);if(s == 'H') {int x = sc.nextInt();add_to_head(x);}else if(s == 'D') {int k = sc.nextInt();if(k == 0) head = ne[head];else remove(k);}else {int k = sc.nextInt();int x = sc.nextInt();add_to_k(k, x);}}for(int i = head; i != -1; i = ne[i] ) {System.out.println(e[i]);}sc.close();pw.close();}
}
http://www.lryc.cn/news/41411.html

相关文章:

  • 蓝桥杯刷题第十四天
  • 面试了8家软件公司测试岗位,面试题大盘点,我真的尽力了
  • Activiti 工作流简介
  • 【华为机试真题详解 Python实现】统计差异值大于相似值二元组个数【2023 Q1 | 100分】
  • 【C++】Google编码风格学习
  • JavaScript 中的Promise 函数
  • 学校教的Python,找工作没企业要,太崩溃了【大四真实求职经历】
  • 快看!这只猫两次登上 Github Trending !!!
  • Linux->文件系统初识
  • InfluxDB和IotDB介绍与性能对比
  • 计算机体系结构(校验码+总线)
  • JavaWeb《三》Request请求转发与Response响应
  • 断言assert
  • 【Java项目】完善基于Java+MySQL+Tomcat+maven+Servlet的博客系统
  • 详解结构体内存对齐
  • 指针:程序员的望远镜
  • 【python实现学生选课系统】
  • 备受青睐的4D毫米波成像雷达,何以助力高阶自动驾驶落地?
  • 3.20算法题(一) LeetCode 合并两个有序数组
  • QT | 编写一个简单的上位机
  • DirectX12(D3D12)基础教程(二十一)—— PBR:IBL 的数学原理(2/5)
  • 嵌入式学习笔记——SysTick(系统滴答)
  • Linux实操之服务管理
  • 基于Java+SpringBoot+vue的毕业生信息招聘平台设计和实现【源码+论文+演示视频+包运行成功】
  • 智能生活垃圾检测与分类系统(UI界面+YOLOv5+训练数据集)
  • 建立农村污水处理设施已经成为了当务之急!
  • 【Matlab算法】粒子群算法求解一维线性函数问题(附MATLAB代码)
  • 【JavaEE】Thread 类及常用方法
  • C语言数据结构初阶(7)----队列
  • 代码随想录二刷 day01 | 704. 二分查找 27. 移除元素 977. 有序数组的平方