#include<bits/stdc++.h>
const int N=100010;
//数组模拟单链表
int ne[N],n[N],head=-1,idx=0,a;
void add_head(int x) {n[idx]=x,ne[idx]=head,head=idx++;}
void add(int k,int x) {n[idx]=x,ne[idx]=ne[k],ne[k]=idx++;}
void remove(int k) {n[k]=n[n[k]];}
//数组模拟双链表
int int e[N],l[N],r[N],idx;
void insert(int a,int x) {e[idx]=x,l[idx]=a,r[idx]=r[a],l[r[a]]=idx,r[a]=idx++;}
void remove(int a) {l[r[a]]=l[a],r[l[a]]=r[a];}
//数组模拟栈
int stk[N],tt;
push: stk[++tt]=x;
pop: tt--;
empty: tt==0?1:0
//数组模拟队列
int q[N],hh,tt=-1;
push: q[++tt]=x;
pop: hh++;
empty: hh>tt?1:0
使用数组来模拟各种数据结构【c/c++ 模板】
最新推荐文章于 2022-10-23 21:43:23 发布