标签:
树型结构是一类重要的非线性数据结构,其中二叉树较为常用。二叉树的特点的每个节点至多只有两棵子树(寄即二叉树中不存在大于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的根节点 )
标签:
原文地址:http://blog.csdn.net/luomingjun12315/article/details/45216503