二叉树

树型结构是一类重要的非线性数据结构,其中二叉树较为常用。二叉树的特点的每个节点至多只有两棵子树(即二叉树中不存在大于2的节点),并且二叉树有左右子树之分。

二叉树的属性:

     1、二叉树有5种基本形态,(a)空二叉树 (b)仅有根节点的二叉树 (c) 右子树为空的二叉树 (d)左右子树均为非空的二叉树(e)左子树为空的二叉树

二叉树的性质;

     性质1  在二叉树的第 i 层上至多有 2^( i -1) 个节点 ( i ≧ 1 )

     性质2  深度为 k 的二叉树 至多有 2^k - 1 个节点, ( k ≧ 1)

     性质3 对任何一棵二叉树 T ,如果其 终端结点 数 为 n0,度为2的节点数为n2,则 n0 = n2 + 1.(度:指父结点下面有几个孩子结点);

     性质4 具有n个节点的完全二叉树的深度为 [㏒₂n] + 1

     性质5 如果有一棵有n个节点的完全二叉树(其深度为 [㏒₂n] + 1)的节点按层序编号(从第 1 层到 第 [㏒₂n] + 1 层,每层从左到右),则对任意一节点 i (1≤ i ≤ n),有

              ①如果 i = 1,则节点 i 是二叉树的根,无双亲 ; 如果 i > 1,则其双亲的节点 为 [ i / 2];

              ②如果 2i > n, 则节点 i 无左孩子(节点 i 为叶子的节点);否则其左孩子的是 2i。

              ③如果 2i + 1 > n,则其无右孩子;否则其右孩子的节点是 2i + 1

二叉树的遍历方式:

       1、层次遍历  (从上到下,从左到右的顺序进行遍历)

       2、先序遍历  ( PreOrder(T) = T的根节点 + PreOrder(T的左子树) + PreOrder(T的右子树) )

       3、中序遍历  ( InOrder(T) = InOrder(T的左子树) + T的根节点 +  InOrder(T的右子树) )

       4、后序遍历  ( PostOrder(T) = PostOrder(T的左子树) + PostOrder(T的右子树)  + T的根节点 )

posted @ 2015-11-30 21:07  小松鼠。  阅读(189)  评论(0编辑  收藏  举报