树和二叉树
需要知道的基本概念
结点、 结点的度、树的度、叶子结点、分支结点、内部结点、父结点、子结点、兄弟结点、层次。
公式:总结点 n = 总度数d + 1
树的遍历
前序:先访问根结点,再从左到右访问叶子节点
后序:先从左到右访问叶子节点,再访问根结点
层次:从根开始一层层访问
二叉树
基本概念:满二叉树、完全二叉树、非完全二叉树
每个父节点最多两个子节点,有左子树和右子树。
注意:二叉树不是树,树和二叉树是两种不同的数据结构。
重要特性:
1、在二叉树的第i层最多有2^(i-1) (i>=1)
2、深度为k的二叉树最多有2^k - 1个结点 (k>=1)
3、对任何一棵二叉树,如果其叶子结点数为n0,度为2结点数为n2,则n0=n2+1
4、如果对一棵有n个结点的完全二叉树的结点按层次编号,则对于任意结点i,有以下特性:
若i = 1,则结点i无结点,是二叉树的根;若i > 1,则父结点是(i/2再向下取整)
若2i > n,则结点i为叶子结点,无左子结点
若2i + 1 > n,则i无右子结点;若2i + 1 <= n,则其右子结点是结点2i + 1
二叉树的遍历
二叉树比树多出一个中序遍历
口诀:前序根左右,中序左根右,后序左右根
树转换为二叉树
从根开始,根的第一个子结点成为二叉树的左子树结点,然后兄弟结点成为二叉树的右子树结点,一步步向下构成二叉树。