童鞋们大家好今天咱们(wo,la ji ben ren )来讲一下二叉树~~
定义:二叉树(binary tree)是指树中节点的度不大于2的有序树。
二叉树的特性:
在二叉树的第i层上最多有2^(i-1)个结点(i>=1),
高度为k的二叉树,最多有2^k-1个结点(k>=0),
对任何一棵二叉树,如果其叶结点有n个,度为2的非叶子结点有m个,则n = m + 1,
具有n个结点的完全二叉树的高度为logn + 1。
遍历:
二叉树的前序、中序、后序遍历
前序遍历:根节点->左子树->右子树(根->左->右)
中序遍历:左子树->根节点->右子树(左->根->右)
后序遍历:左子树->右子树->根节点(左->右->根)
(代码可用递归实现)
特殊二叉树:
满二叉树:
如果二叉树中所有分支结点的度数都为2,并且叶子结点都在统一层次上,则二叉树为满二叉树。
完全二叉树:
如果一棵具有n个结点的高度为k的二叉树,树的每个结点都与高度为k的满二叉树中编号为1——n的结点一一对应,则二叉树为完全二叉树。
(下图选自百度)