算法模板——数据结构篇

声明:参考自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++

相关推荐
夏末秋也凉9 分钟前
力扣-回溯-131 分割回文串
算法·leetcode
努力可抵万难13 分钟前
【算法系列】leetcode1419 数青蛙 --模拟
c++·算法·模拟
ww1800013 分钟前
多目标粒子群优化算法-MOPSO-(机器人路径规划/多目标信号处理(图像/音频))
人工智能·算法·分类·信号处理
Tianyanxiao22 分钟前
【探商宝】2025年2月科技与商业热点头条:AI竞赛、量子计算与芯片市场新格局
大数据·人工智能·经验分享·数据分析
CS创新实验室24 分钟前
计算机考研之数据结构:大 O 记号
数据结构·考研
白水先森1 小时前
ArcGIS Pro进行坡度与坡向分析
经验分享·arcgis
wen__xvn2 小时前
每日一题洛谷P1914 小书童——凯撒密码c++
数据结构·c++·算法
心无旁骛~2 小时前
Git笔记汇总,持续更新~
笔记·git
BUG 劝退师3 小时前
八大经典排序算法
数据结构·算法·排序算法
陈无左耳、3 小时前
HarmonyOS学习第2天: 解锁语言与框架的无限可能
学习·华为·harmonyos