[toc]
二叉树
二叉树的基本概念
二叉树是每个节点最多有两个子树的树结构. 通常子树被称作 "左子树" ( left subtree ) 和 "右子树" ( right subtree )
二叉树的性质 ( 特性 )
性质1: 在二叉树的第 i 层上至多有 2^( i-1 ) 个节点 ( i > 0 )
性质2: 深度为 k 的二叉树至多有 2^k - 1 个节点 ( k > 0 )
性质3: 对于任意一棵二叉树, 如果其叶节点数为 N0, 而度数为 2 的节点总数为 N2, 则 N0 = N2 + 1
性质4: 具有 n 个节点的完全二叉树的深度必为 log2(n+1)
性质5: 对完全二叉树, 若从上至下, 从左至右编号, 则编号为 i 的节点, 其左孩子编号必为 2i, 其右孩子编号必为 2i + 1. 其双亲的编号必为 i/2 ( i = 1 时为根, 除外 )
(1) 完全二叉树--若设二叉树的高度为 h, 除第 h 层外, 其他各层 ( 1 ~ h-1 ) 的节点数都大袋最大个数. 第 h 层有叶子节点, 并且叶子节点都是从左到右依次排布, 这就是完全二叉树
(2) 满二叉树--除了叶节点外每一个节点都有左右也子叶且叶子节点都处在最底层的二叉树