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];
}
相关推荐
goodluckyaa3 小时前
thread block grid模型
算法
武帝为此4 小时前
【Rabbit加密算法介绍】
算法·安全
m0_716765234 小时前
数据结构三要素、时间复杂度计算详解
开发语言·数据结构·c++·经验分享·笔记·算法·visual studio
网安INF4 小时前
数据结构第二章复习:线性表
java·开发语言·数据结构
米粒14 小时前
力扣算法刷题 Day 36
算法·leetcode·职场和发展
北顾笙9804 小时前
day21-数据结构力扣
数据结构
And_Ii4 小时前
3740. 三个相等元素之间的最小距离 I
c++·算法
csuzhucong4 小时前
puzzle(0334)双面数局
数据结构·算法
强盛机器学习~4 小时前
2026年SCI一区新算法-贝塞尔曲线优化算法(BCO)-公式原理详解与性能测评 Matlab代码免费获取
算法·matlab·进化计算·智能优化算法·元启发式算法·群体智能算法
翟天保Steven4 小时前
空间载波移相干涉算法(SPSI)
算法·激光干涉·精密量测