算法模板——数据结构篇

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

相关推荐
茉莉玫瑰花茶2 分钟前
算法 --- 字符串
算法
博笙困了12 分钟前
AcWing学习——差分
c++·算法
NAGNIP15 分钟前
认识 Unsloth 框架:大模型高效微调的利器
算法
NAGNIP16 分钟前
大模型微调框架之LLaMA Factory
算法
echoarts16 分钟前
Rayon Rust中的数据并行库入门教程
开发语言·其他·算法·rust
Python技术极客22 分钟前
一款超好用的 Python 交互式可视化工具,强烈推荐~
算法
徐小夕26 分钟前
花了一天时间,开源了一套精美且支持复杂操作的表格编辑器tablejs
前端·算法·github
Alice-YUE28 分钟前
【CSS学习笔记3】css特性
前端·css·笔记·html
2303_Alpha34 分钟前
SpringBoot
笔记·学习
小刘鸭地下城39 分钟前
深入浅出链表:从基础概念到核心操作全面解析
算法