一、栈
二、树
常见的考点:
二叉树的性质:
-
含有n个结点的二叉树共有
-
叶子结点个数比度为2的结点个数多1
-
非空二叉树叶子结点数 = 度为2的结点数 + 1 即,N0=N2+1
最原始公式为:树的结点树=边数+1
则N0+N1…+Nm=0+N1+2N2+…mNm+1
N0=N2+2N3+…+(m-1)Nm+1 -
非空二叉树上第K层至多有2k−1 个结点(K≥1)
-
高度为H的二叉树至多有2H−1 个结点(H≥1)
-
具有N个(N>0)结点的完全二叉树的高度为 ⌈log2(N+1)⌉ 或 ⌊log2N⌋+1
-
对完全二叉树按从上到下、从左到右的顺序依次编号1,2,…,N,则有以下关系:
① 当 i>1 时,结点 i 的双亲结点编号为 ⌊i/2⌋ ,即当 i 为偶数时,其双亲结点的编号为 i/2 ,它是双亲结点的左孩子;当 i 为奇数时,其双亲结点的编号为 (i−1)/2 ,它是双亲结点的右孩子。
② 当 2i≤N 时,结点i的左孩子编号为 2i ,否则无左孩子。
③ 当 2i+1≤N 时,结点i的右孩子编号为 2i+1 ,否则无右孩子。④ 结点 i 所在层次(深度)为 ⌊log2i⌋+1 。(设根结点为第1层)**
-
森林先序遍历=树的先根遍历=二叉树的先序遍历
森林中序遍历=树的后根遍历=二叉树的中序遍历
三、图(以下的n均代表节点数)
- 无向图的全部顶点的度的和等于边数的2倍
- 路径:顶点Vp到定于Vq之间的一条路径是指顶点序列
- 回路:第一个顶点和最后一个顶点相同的路径称为回路或环
- 简单路径:路径序列中没有顶点重复
- 简单回路:除第一个顶点和最后一个顶点外,其余顶点不重复出现
- 强连通:两个顶点间路径既有正向也有逆向
- 连通图:任意两个顶点间都是连通的-都可达
- G是连通图,最少有n-1条边2
- G是非连通图,最多有
- G是强连通图,最少有n条边(环)
- 生成树:包含图中全部顶点的一个极小连通子图
- 生成森林:连通分量的生成树构成了非连同图的生成森林
- 无向完全图:无向图中任意两个顶点之间存在边,边数最多为
- 有向完全图:有向图中任意两个顶点之间存在方向相反的两条边,边数最多为
- 有向树:一个顶点的入度为0,其余顶点入度均为1的有向图
- 最短路径:
BFS:通过构造int b[],path[]数组,b数组来记录到顶点的路径,path数组记录顶点通过哪些中转(只能用于各条边权重为0的情况)
Dijikstra:通过每次选出最小的那条边且还没确定的最短路径
Floye:
总结: - 有向无环图(DAG)