一、栈
int a[maxn],tot;
#define top() (a[tot])
#define pop() (tot--)
#define push(x) (a[++tot]=(x))
//注意tot是否大于0
STL stack
二、队列
STL queue
三、并查集
四、二叉树
1.二叉树
二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。 二叉树特点是每个结点最多只能有两棵子树,且有左右之分。
将1设置为树的根
节点标号i的父亲标号为i/2(向下取整)
节点标号i的左儿子标号为i*2
节点标号i的右儿子标号为i*2+1
2.堆
堆的性质
堆中某个节点的值总是不大于或不小于其父节点的值;
堆总是一棵完全二叉树。
五、差分