先上代码:

#include <bits/stdc++.h>
const int N = 100010;
int e[N], ne[N], idx, head;
void init()
{head = -1;idx = 0;
}
void add_head(int x)
{e[idx] = x;ne[idx] = head;head = idx;idx++;
}
void add(int k, int x)
{e[idx] = x;ne[idx] = ne[k];ne[k] = idx;idx++;
}
void myRemove(int k)
{ne[k] = ne[ne[k]];
}
int main()
{int m, k, x;char c;init();scanf("%d", &m);while(m--){scanf(" %c", &c);if(c == 'H'){scanf("%d", &x);add_head(x);}if(c == 'I'){scanf("%d%d", &k, &x);add(k - 1, x);}if(c == 'D'){scanf("%d", &k);if(k == 0)head = ne[head];elsemyRemove(k - 1);}}for(int i = head; i != -1; i = ne[i]){printf("%d ", e[i]);}printf("\n");return 0;
}

讲解:

这个题的核心考点是用数组来模拟链表,目的是为了弥补用指针来模拟链表速度慢的缺点。这里有三个注意点:

1.吃回车
如果你是用scanf函数来读字符的话,就会遇到吃回车的问题。解决办法就是在%c前面加一个空格。
2.k的含义
在这道题目里,k是用来表示第k个插入的结点,但我们的idx是从0开始的,于是,题目中的k也就变相等于我们的第k-1个结点。
3.四个全局变量的含义

e[i]:代表每个结点内存的数值
ne[i]:相当于next指针,里面存放该结点指向的下一个结点的下标
head:也相当于next指针,不过这个指针比较特殊,指向的是头结点的下一个结点,初始时为null
idx:这是这个数据结构的精髓,表示当前正在操作的结点的下标

2021-10-28 ACWING826 单链表相关推荐

  1. Spring Boot安装及使用(2021.10.28)

    Spring Boot安装及使用 2021.10.28 1.Spring Boot 简介 1.1 为何选择Spring? 1.2 Spring的功能 1.3 Spring项目的依赖包管理工具(Mave ...

  2. 数组模拟单链表acwing826. 单链表

    文章目录 单链表一道题 数组模拟单链表模板 初始化链表 向表头插入数 在下标为k的节点的下一个位置插入节点 删除下标为k的节点的下一个节点 单链表一道题 单链表题目 实现一个单链表,链表初始为空,支持 ...

  3. 链表问题10——两个单链表生成相加链表(方法二)

    题目 假设链表中每一个节点的值都在0-9之间,链表整体代表一个整数. 给定两个这种链表的头节点,请生成代表两个整数相加值的结果链表. 链表1 链表2 生成的新链表 9->3->7 6-&g ...

  4. 链表问题10——两个单链表生成相加链表

    题目 假设链表中每一个节点的值都在0-9之间,链表整体代表一个整数. 给定两个这种链表的头节点,请生成代表两个整数相加值的结果链表. 链表1 链表2 生成的新链表 9->3->7 6-&g ...

  5. 2021.10.28打卡

    869. 重新排序得到 2 的幂 思路:预处理+哈希表 由于我们可以按任意顺序对数字进行排序,因此对于两个不同的整数a和b,如果十进制表示的字符数组,从小到大排序的结果是相同的,那么若a能够重排得到2 ...

  6. [2021.10.28]<呆头熊的开发日记>怪物AI

    以下是各个小怪继承的父类[Enemy]脚本. 主要功能包含: 1.怪物自身受到伤害: 2.受伤闪烁红色+粒子特效: 3.玩家与怪物触碰受到伤害. using System.Collections; u ...

  7. [2021.10.28]<呆头熊的开发日记>怪物AI(4)

    举盾牌小怪:(标签为Shield,而非Enemy) 1.固定区域巡逻: 2.前后无法攻击.受伤: 3.发现玩家主动攻击: 4.玩家仅能下落攻击对其造成伤害. using System.Collecti ...

  8. 利用C++创建带头结点单链表,并实现插入、删除、遍历、清空、退出等功能

    一.创建linklist.h头文件,创建LNode结点,LinkList链表类 #pragma once //防止头文件重复包含 #include<iostream> //标准输入输出流 ...

  9. (数据结构)1.实现顺序表的各种基本运算的算法 2.实现单链表的各种基本运算的算法

    实验内容 1.编写一个程序sqlist.cpp,实现顺序表的各种基本运算和整体建表算法(假设顺序表的元素类型ElemType为char),并在此基础上设计一个程序exp2-1.cpp完成以下功能. ( ...

  10. Interview:算法岗位面试—10.30上午上海某信息公司(偏图算法)技术面试之单链表反转、给定整型数组和目标值 二分法查找+下午上海某金融公司(AI岗位,上市)CTO和主管技术面试之Xcepti

    ML岗位面试:10.30上午上海某信息公司(偏图算法)技术面试之单链表反转.给定整型数组和目标值 二分法查找+下午上海某金融公司(AI岗位,上市)CTO和主管技术面试之Xception.推荐算法等 I ...

最新文章

  1. 全球比特币和区块链领域创业企业全景图
  2. 推荐8个高质量的小众APP,功能真的惊艳到我了!
  3. 边缘AI是内存技术发展的催化剂
  4. DataTables实现rowspan思路
  5. 根据信号灯状态解决网络故障
  6. 文件_ _android从资源文件中读取文件流并显示的方法
  7. IgniteMe debug 寒假逆向生涯(2/100)
  8. 【汇编语言】8086汇编,快速搞定各种寻址方式:立即数寻址 / 寄存器寻址 / 存储器寻址
  9. redisson 大量ping操作,导致 tps过高
  10. 【转】关于CLR内存管理一些深层次的讨论[下篇]
  11. erp生产管理系统流程_企业生产管理好帮手——ERP智能管理系统
  12. ECCV 2020 | 可解释和泛化的行人再辨识
  13. 字节跳动入局外卖赛道 美团饿了么怕了吗?
  14. python之pymysql的使用
  15. 堕落 Java vs 新贵 Python,2018 年最应该学习哪一门编程语言?
  16. VueJS 组件参数名命名方式和前台显示
  17. Android显示gif格式图片
  18. 【解密】PDF文档忘记编辑密码 照样编辑
  19. 从零开始学习SEO的基础概念
  20. 一代版本一代神,加密行业在新局势下充满机遇也面临挑战

热门文章

  1. 史上最失败系统!微软正式终止对Vista支持
  2. SQL Server MYSQL 检查点的好处
  3. [置顶]       jBPM4工作流开发实战 之 第二部分 jBPM4开发入门
  4. Windows 無法查詢{7B849a69-220F-......} 的 DllName 登錄項目
  5. 在写spring项目的时候,有时候需要写ApplicationContext,有时候不要写ApplicationContext
  6. Word2007中公式和文字混排,文字和公式总是没法对齐
  7. 一对一直播系统基础的交接流程
  8. LeetCode 33——搜索旋转排序数组
  9. 宜信正式开源其 AIOps 落地三大利器
  10. 在php中插入图片,php中怎么插入图片