acwing算法基础之数据结构--双链表

目录

  • 1 知识点
  • 2 模板

1 知识点

一般的结构体写法为,

struct BiListNode {int val;BiListNode *left;BiListNode *right;
};

但我们不用这个,而用数组模拟双链表,此时,用编号为0的结点表示头结点,用编号为1的结点表示尾节点。

2 模板

const int N = 1e6 + 10;
int idx; //用来表示所有的结点下标。
int e[N], l[N], r[N]; //e[i]表示结点i的值,l[i]表示结点i的左边结点,r[i]表示结点i的右边结点。//(1)初始化
void init() {//结点0表示头结点,结点1表示尾节点。r[0] = 1;l[1] = 0;idx = 2;
}//(2)在结点k的右边插入数值x
void insert(int k, int x) {e[idx] = x;r[idx] = r[k];l[idx] = k;r[k] = idx;l[r[idx]] = idx;idx++;
}//(3)删除结点k
void remove(int k) {r[l[k]] = r[k];l[r[k]] = l[k];
}

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

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

相关文章

AndroidStudio使用superSUAPK ROOT(失败)

下载superSUAPK Chainfire SuperSU Download - Official Download Page 两个文件: supersu-2-82.apk SuperSU-v2.82-201705271822.zip 查看有哪些模拟器 > cd C:\Users\Administrator\AppData\Local\Android\Sdk\emulator> .\emulator.exe -list-avds …

《设计模式巩固学习》

昨天面试完字节后发现自己的《设计模式》学习不到位 好的软件设计注重的是复用,而变化是复用的天敌 设计模式的章节目录(23钟设计模式) 一、重新认识面向对象1、重新认识面向对象2、面向对象设计基本原则(八个原则)3…

雷电模拟器上使用第一个frida(四)第一个HOOK

经过上述三篇,已经可以使用python3.8.10编写代码,利用frida14.2.18和雷电模拟器9.0.60(9),Android 9交互。 雷电模拟器上使用第一个frida(一)之安装-CSDN博客 雷电模拟器上使用第一个frida(二&#xff09…

大数据Doris(十一):添加FS_BROKER步骤

文章目录 添加FS_BROKER步骤 一、 ​​​​​​​配置broker节点

机器学习(22)---信息熵、纯度、条件熵、信息增益

文章目录 1、信息熵2、信息增益3、例题分析 1、信息熵 1. 信息熵(information entropy)是度量样本集合纯度最常用的一种指标。信息的混乱程度越大,不确定性越大,信息熵越大;对于纯度,就是信息熵越大,纯度越低。 2. 纯度…

Spark工作流程

Spark 的整个工作流程可以概括为以下步骤: 创建 SparkSession: 应用程序首先需要创建一个 SparkSession 对象,它是与 Spark 的交互入口。SparkSession 提供了对核心功能和各个模块的访问。 加载数据: 使用 SparkSession 提供的 AP…

Python 中的模糊字符串匹配

文章目录 Python中使用thefuzz模块匹配模糊字符串使用process模块高效地使用模糊字符串匹配今天,我们将学习如何使用 thefuzz 库,它允许我们在 python 中进行模糊字符串匹配。 此外,我们将学习如何使用 process 模块,该模块允许我们借助模糊字符串逻辑有效地匹配或提取字符…

MySQL锁学习笔记

锁 事务的隔离性由锁来实现。 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤其是针对一些敏感的数据(比如订单、金额等),我…

论文阅读之【Is GPT-4 a Good Data Analyst?(GPT-4是否是一位好的数据分析师)】

文章目录 论文阅读之【Is GPT-4 a Good Data Analyst?(GPT-4是否是一位好的数据分析师)】背景:数据分析师工作范围基于GPT-4的端到端数据分析框架将GPT-4作为数据分析师的框架的流程图 实验分析评估指标表1:GPT-4性能表现表2&…

工序解释执行程序--工程师的成长

多年前一个项目主要做一台机器,读取文件数据并解释执行,吸合电磁阀或点亮相应的LED,提示工人操作 文件格式 A 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 10 10 11 11 …

Qt编程,TCP编程、数据库

目录 1、TCP: QTcpServer | QTcpSocket 1、 ##TCP客户端 1、//连接成功信号 2、//连接断连信号 3、 //数据就绪信号 4、 //连接到服务器,使用服务器的IP地址和端口 5、//发送数据到服务器 6、//从服务器接收数据 2、##TCP服务器端 1、//创建TCP服务器对象 2、//新连接信号 3、…

linux之shell记录

shell属于一种很容易学习的程序设计语言,依赖于功能强大的命令可以编写提高开发效率的脚本。这里记录一下常用的shell相关的知识点。 持续更新中。。。 1、在linux或mac中查看使用的shell echo $SHELL /bin/bashshell是一种脚本语言,就会有解释器来执行…

Spring中注入的使用

目录 一、什么是注入(Injection) 1.1 为什么要注入 二、注入的基本使用 三、Spring注入原理分析 一、什么是注入(Injection) 注入就是通过Spring的配置文件,为所创建对象的成员变量进行赋值 1.1 为什么要注入 书接上…

Java 中实现单例模式

单例模式 单例模式,就是一个类在任何情况下绝对只有一个实例,并且提供一个全局访问点来获取该实例。 要实现单例,至少需要满足两个点: 私有化构造方法,防止被外部实例化造成多实例问题 提供一个静态方位作为全局访问点…

Linux:进程控制

目录 一、进程创建 写时拷贝 二、进程终止 echo $? 如何终止进程 _exit与exit 三、进程等待 进程等待的必要性 进程等待的操作 wait waitpid status 异常退出情况 status相关宏 options 四、进程程序替换 1、关于进程程序替换 2、如何进行进程程序替换 程序…

函数防抖(javaScript)

防抖说明 (1)防抖的目的: 当多次执行某一个动作的时候,限制函数调用的次数,节约资源。 (2)防抖的概念: 函数防抖(debounce):就是指触发事件后&…

Python中图像相似性度量方法汇总

1. 引言 在当前到处充满着图像的世界里,测量和量化图像之间的相似性已经成为一项关键的任务。无论是图像检索、内容推荐还是视觉搜索,图像相似性方法在现代计算机视觉的应用中都发挥着关键的作用。 幸运的是,Python提供了大量的工具和库&am…

想要精通算法和SQL的成长之路 - 分割数组的最大值

想要精通算法和SQL的成长之路 - 分割数组的最大值 前言一. 分割数组的最大值1.1 二分法 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 分割数组的最大值 原题链接 首先面对这个题目,我们可以捕获几个关键词: 非负整数。非空连续子数组。 那么我…

组合数(1) 用Vector实现获取所有组合数列表的QT实现

1.工程文件 QT coreCONFIG c17 cmdline# You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. #DEFINES QT_DISABLE_DEPRECATED_BEFORE0x060000 # disables all the APIs deprecated before Qt 6.…

BIM轻量化技术简介

BIM轻量化技术是指在工程建筑的BIM模型建立之后(利用专业的BIM建模软件,比如Autodesk Revit, Bentley MicroStation, DS Catia等),通过对BIM模型的压缩处理等技术手段,让BIM可以在各类WEB浏览器、移动App上被使用的技术…