算法模板——数据结构篇

声明:参考自acwing


目录

1.单链表

2.双链表

3.数组栈与队列

4.单调栈


1.单链表

cpp 复制代码
int head,e[N],ne[N],idx;

void init(){
	head=-1;
	idx=0;
}
void add_head(int x){                 //head有实值
	e[idx]=x,ne[idx]=head,head=idx++;
}
void add(int k,int x){    
	e[idx]=x,ne[idx]=ne[k],ne[k]=idx++;
}
void del(int k){
	ne[k]=ne[ne[k]];
}

2.双链表

cpp 复制代码
int e[N],l[N],r[N],idx;

void init(){
	r[0]=1,l[1]=0;
	idx=2;
}
void insert(int k,int x){
	e[idx]=x;
	r[idx]=r[k];
	r[k]=idx;
	l[r[idx]]=idx;
	l[idx++]=k;
}
void remove(int k){
	r[l[k]]=r[k];
	l[r[k]]=l[k];
}

3.数组栈与队列

cpp 复制代码
int t;
int st[N];
st[++t]=k;
--t;
t==0;

int hh,tt;
int q[N];

#hh做头 tt做尾
q[tt++]=k;  #尾加
++hh;  #头出
tt==hh  #为空

4.单调栈

cpp 复制代码
#常用于找出每个数左边离它最近的比它大/小的数
int tt = 0;
for (int i = 1; i <= n; i ++ )
{
    while (tt && check(st[tt], i)) tt -- ;
    st[ ++ tt] = i;
}

++to be continued++

相关推荐
写后端的胖头鱼5 小时前
一文详解B+树原理(附场景+示例)
数据结构·b树
阳光九叶草LXGZXJ6 小时前
达梦数据库-报错-15-列【XXX】长度超出定义
linux·运维·数据库·sql·学习
怕浪猫6 小时前
RAG 面试 6 连问,从原理到优化全部覆盖
python·算法·面试
陈卫军老师6 小时前
陈卫军语录全集总结:12句话,一条主线
经验分享·笔记
恒锐丰科技林技术员6 小时前
EG2129 带过流保护全桥驱动芯片解析
经验分享·嵌入式硬件·硬件工程
无线通信科研笔记6 小时前
IEEE TVT 2026 论文精读与完整复现|相位误差如何重塑近场 RIS 的幅相响应
论文阅读·人工智能·python·算法·论文笔记
mmmmath_37 小时前
二叉树の递归遍历
算法
爱吃奥利奥_wen7 小时前
面向对象三板斧:封装、继承、多态,到底在“装“什么、“承“什么、“变“什么?
开发语言·经验分享·c#
All for pursuit.8 小时前
【位运算-1】338.比特位计数
数据结构·c++·算法·leetcode
小师兄吃牛肉8 小时前
C语言中的nullptr有必要吗
c语言·c++·算法