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

目录

  • [1 知识点](#1 知识点)
  • [2 模板](#2 模板)

1 知识点

一般的结构体写法为,

cpp 复制代码
struct BiListNode {
	int val;
	BiListNode *left;
	BiListNode *right;
};

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

2 模板

cpp 复制代码
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];
}
相关推荐
code_pgf3 分钟前
Qwen2.5-VL 算法解析
人工智能·深度学习·算法·transformer
Code-keys26 分钟前
Android Codec2 Filter 算法模块开发指南
android·算法·音视频·视频编解码
无忧智库39 分钟前
低空经济新基建:构建低空飞行大数据中心与行业应用算法工厂的全景式蓝图(WORD)
算法
闻缺陷则喜何志丹1 小时前
【背包 组合】P7552 [COCI 2020/2021 #6] Anagramistica|普及+
c++·算法·背包·洛谷·组合
锅挤2 小时前
数据结构复习(第五章):树与二叉树
数据结构
小章UPUP2 小时前
2026年第十六届MathorCup数学应用挑战赛D题国奖思路
算法
hssfscv2 小时前
软件设计师下午试题四——C语言(N皇后问题、分治、动态规划)
c语言·算法·动态规划
lolo大魔王3 小时前
Go语言的反射机制
开发语言·后端·算法·golang
白羊by3 小时前
Softmax 激活函数详解:从数学原理到应用场景
网络·人工智能·深度学习·算法·损失函数
杨凯凡3 小时前
【014】基本类型与包装类:缓存、相等性、NPE
java·数据结构·缓存