2021-10-28 ACWING826 单链表
先上代码:
#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 单链表相关推荐
- Spring Boot安装及使用(2021.10.28)
Spring Boot安装及使用 2021.10.28 1.Spring Boot 简介 1.1 为何选择Spring? 1.2 Spring的功能 1.3 Spring项目的依赖包管理工具(Mave ...
- 数组模拟单链表acwing826. 单链表
文章目录 单链表一道题 数组模拟单链表模板 初始化链表 向表头插入数 在下标为k的节点的下一个位置插入节点 删除下标为k的节点的下一个节点 单链表一道题 单链表题目 实现一个单链表,链表初始为空,支持 ...
- 链表问题10——两个单链表生成相加链表(方法二)
题目 假设链表中每一个节点的值都在0-9之间,链表整体代表一个整数. 给定两个这种链表的头节点,请生成代表两个整数相加值的结果链表. 链表1 链表2 生成的新链表 9->3->7 6-&g ...
- 链表问题10——两个单链表生成相加链表
题目 假设链表中每一个节点的值都在0-9之间,链表整体代表一个整数. 给定两个这种链表的头节点,请生成代表两个整数相加值的结果链表. 链表1 链表2 生成的新链表 9->3->7 6-&g ...
- 2021.10.28打卡
869. 重新排序得到 2 的幂 思路:预处理+哈希表 由于我们可以按任意顺序对数字进行排序,因此对于两个不同的整数a和b,如果十进制表示的字符数组,从小到大排序的结果是相同的,那么若a能够重排得到2 ...
- [2021.10.28]<呆头熊的开发日记>怪物AI
以下是各个小怪继承的父类[Enemy]脚本. 主要功能包含: 1.怪物自身受到伤害: 2.受伤闪烁红色+粒子特效: 3.玩家与怪物触碰受到伤害. using System.Collections; u ...
- [2021.10.28]<呆头熊的开发日记>怪物AI(4)
举盾牌小怪:(标签为Shield,而非Enemy) 1.固定区域巡逻: 2.前后无法攻击.受伤: 3.发现玩家主动攻击: 4.玩家仅能下落攻击对其造成伤害. using System.Collecti ...
- 利用C++创建带头结点单链表,并实现插入、删除、遍历、清空、退出等功能
一.创建linklist.h头文件,创建LNode结点,LinkList链表类 #pragma once //防止头文件重复包含 #include<iostream> //标准输入输出流 ...
- (数据结构)1.实现顺序表的各种基本运算的算法 2.实现单链表的各种基本运算的算法
实验内容 1.编写一个程序sqlist.cpp,实现顺序表的各种基本运算和整体建表算法(假设顺序表的元素类型ElemType为char),并在此基础上设计一个程序exp2-1.cpp完成以下功能. ( ...
- Interview:算法岗位面试—10.30上午上海某信息公司(偏图算法)技术面试之单链表反转、给定整型数组和目标值 二分法查找+下午上海某金融公司(AI岗位,上市)CTO和主管技术面试之Xcepti
ML岗位面试:10.30上午上海某信息公司(偏图算法)技术面试之单链表反转.给定整型数组和目标值 二分法查找+下午上海某金融公司(AI岗位,上市)CTO和主管技术面试之Xception.推荐算法等 I ...
最新文章
- 全球比特币和区块链领域创业企业全景图
- 推荐8个高质量的小众APP,功能真的惊艳到我了!
- 边缘AI是内存技术发展的催化剂
- DataTables实现rowspan思路
- 根据信号灯状态解决网络故障
- 文件_ _android从资源文件中读取文件流并显示的方法
- IgniteMe debug 寒假逆向生涯(2/100)
- 【汇编语言】8086汇编,快速搞定各种寻址方式:立即数寻址 / 寄存器寻址 / 存储器寻址
- redisson 大量ping操作,导致 tps过高
- 【转】关于CLR内存管理一些深层次的讨论[下篇]
- erp生产管理系统流程_企业生产管理好帮手——ERP智能管理系统
- ECCV 2020 | 可解释和泛化的行人再辨识
- 字节跳动入局外卖赛道 美团饿了么怕了吗?
- python之pymysql的使用
- 堕落 Java vs 新贵 Python,2018 年最应该学习哪一门编程语言?
- VueJS 组件参数名命名方式和前台显示
- Android显示gif格式图片
- 【解密】PDF文档忘记编辑密码 照样编辑
- 从零开始学习SEO的基础概念
- 一代版本一代神,加密行业在新局势下充满机遇也面临挑战
热门文章
- 史上最失败系统!微软正式终止对Vista支持
- SQL Server MYSQL 检查点的好处
- [置顶] jBPM4工作流开发实战 之 第二部分 jBPM4开发入门
- Windows 無法查詢{7B849a69-220F-......} 的 DllName 登錄項目
- 在写spring项目的时候,有时候需要写ApplicationContext,有时候不要写ApplicationContext
- Word2007中公式和文字混排,文字和公式总是没法对齐
- 一对一直播系统基础的交接流程
- LeetCode 33——搜索旋转排序数组
- 宜信正式开源其 AIOps 落地三大利器
- 在php中插入图片,php中怎么插入图片