二叉树 学习笔记
性质
- 若n个节点有两个孩子,则叶子数为n+1
- 若n个节点有两个孩子,则边数为2*n,(去掉一个孩子的边和点),总点数为2*n+1,所以叶子数为n+1
- 若有n个节点,则有n+1个空指针
- 假设空指针指向x个空节点,总边数为2*n,总节点数为2*n+1,x=总节点数-节点数 = 2*n+1-n = n+1(相当于假设每个节点都是双射啦)
- 对于完全二叉树,若其节点数为n,则深度为$\lfloor log_2n \rfloor +1$
- 假设其深度为k,那n的范围在$[2^{k-1},2^k-1]$,所以求到第一个满足$2^x$小于等于n的,然后x+1就是其深度了
线索二叉树
让那些空指针指向前驱和后继
树,森林和二叉树的转换
- https://blog.csdn.net/linraise/article/details/11745559
- 先序遍历的结果序列相同
- 树的后序遍历 = 二叉树的中序遍历
- 树的层序遍历 = 二叉树的后序遍历
- 森林的先序遍历 = 二叉树的先序遍历
- 森林的中序遍历 = 二叉树的中序遍历
最优二叉树
- 最优判定树
- 哈夫曼树