使用數組來模擬各種數據結構【c/c++ 模板】

#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





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章