数据结构之二叉树
某厂面试归来,发现自己落伍了!>>> 概念: 二叉树是一种特殊的树,其每个节点最多只能有两个子节点。其左子树和右子树是有顺序的,顺序不能颠倒。即使只有一个节点,也要区分左右子树。 斜树: 二叉树中每个节点只有相同方向,全部节点只有左子节点的称为左斜树,只有右子节点的称为右斜树。 满二叉树: 所有的分支节点都具有左子树和右子树,所有的叶子节点都在同一层上,满二叉树追求树的平衡。 满二叉树具备一下特点: 叶子节点只能出现在最下面一层。 非叶子节点的度数一定是2。 在同样深度的二叉树中,满二叉树的节点个数最多,叶子树最多。 完全二叉树: 对一棵具备n个节点的二叉树,对每个节点按照层序编号。如果编号为i的节点,与同样深度的满二叉树编号为i的节点在二叉树的同样位置,那么这棵二叉树就是完全二叉树。满二叉树一定是完全二叉树,完全二叉树不一定树满二叉树。 完全二叉树具备以下性质: 叶子节点只能出现在最下一层。 最下层的叶子节点一定出现在左部的连续位置。 倒数第二层的叶子节点一定出现在右部的连续位置。 同样节点数的二叉树,完全二叉树的深度最小。 性质: 一般二叉树的性质: 在非空二叉树的i层上,最多有2^(i-1)个节点。 在深度为k的二叉树上,最多有2^k-1个节点。 对于一棵非空的二叉树,如果叶子节点的个数为n0,度数为2的节点的个数为n2,则有n0=n2+1。 在一棵二叉树中,除了叶子节点