算法模板——数据结构篇

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

相关推荐
Frank_zhou1 小时前
算法-数组实战【合并区间】中等
数据结构
前端付豪2 小时前
微信视频号推荐系统揭秘:兴趣建模、多模态分析与亿级流控架构实战
前端·后端·算法
木杉苑2 小时前
快速幂算法
算法
梦境虽美,却不长4 小时前
算法 学习 排序 2025年6月16日10:25:37
数据结构·学习·排序算法
speop4 小时前
【datawhale组队学习】共读AI新圣经
人工智能·学习
羑悻的小杀马特4 小时前
从信息孤岛到智能星云:学习助手编织高校学习生活的全维度互联网络
c++·学习·生活·api
-qOVOp-4 小时前
408第一季 - 数据结构 - 排序II
数据结构·算法·排序算法
小胖同学~4 小时前
快速入门数据结构--栈
算法
黄豆匿zlib4 小时前
Python中的其他数据结构:除了列表和元组,还有哪些?
数据结构·windows·python
C++ 老炮儿的技术栈4 小时前
VSCode -配置为中文界面
大数据·c语言·c++·ide·vscode·算法·编辑器