特殊二叉树
斜树
全部树在左边,或右边的树。
满二叉树
所有的分支节点都有,左右子树,并且所有叶子都在同一层上的树。
二叉树的性质
- 在二叉树的第i层上最多有2^(i-1)个节点(i >= 1)
- 深度为k的二叉树做多有(2^k)-1个节点(k>=1)
二叉树的存储
完全二叉树可以直接用数组来存储,假如是普通的二叉树,空的地方用-1表示也用数组存储。但是容易造成空间的浪费https://pan.wps.cn/l/sq0rxof?f=102
二叉链表,每个节点有两个指针。指向左右节点
二叉树的遍历
前序遍历
若二叉数为空, 则空操作返回,否则先访问根结点, 然后前序遍历左节点,再前序遍历右节点。
中序遍历
若树为空,则空操作返回,否则从根节点开始(注意并不是先访问根节点),中序遍历根节点的左子树, 然后是访问根结点, 最后中序遍历右子树。
后序遍历
若树为空, 则空操作返回, 否则从左到右先叶子后结点的方式遍历访问左右子树,最后访问根结点。
层序遍历
若树为空, 则空操作返回,否则从树的第一层,也就是根节点开始访问,从上而下逐层遍历,在同一层中,按照从左到右的顺序对节点逐个访问。
线索二叉树。
以中序遍历的方式, 访问可以实现线索二叉树。
充分利用浪费空间