树的一些简单又重要的概念

1.树的重要概念
节点:节点包含数据和指向其他节点的指针。
叶节点:没有子节点的节点
节点的度:节点所拥有子树的个数
树的度:树中所有的节点的度的最大值称为该树的度
节点的层次:从根节点到树中某节点所经路径上的分支数称为该节点的层次
树的深度:所有节点的层次的最大值

2.满二叉树和完全二叉树
   
   满二叉树:高度为N的满二叉树有2^(N-1)个节点的二叉树

完全二叉树:若设二叉树的深度为h,除第h层外,其他各层(1~h-1)的节点数都达到最大个数,第h层所有的结点都连续集中在最左边。
3.二叉树(不存在度大于2的节点)的重要性质
1.非空二叉树的第i层有2^(i-1)(i>=1)个节点
2.深度为k的二叉树的最大节点数是2^k -1(k>=0)
3.一棵二叉树叶子节点有n0,度为2的非叶节点个数n2,则no=n2+1
4.具有n个结点的完全二叉树的深度k为log2(n+1)上取整。
5、对于具有n个结点的完全二叉树,如果按照从上至下从左至右的顺序对所有节点从0开始 编号,则对于序号为i的结点有:
  a:如果i>0,则序号为i结点的双亲结点的序号为(i-1)/2;如果i=0,则序号为i的结     点为根节点,无双亲结点
b:如果2i+1<n,则序号为i的结点的左孩子结点的序号为2i+1;如果2i+1>=n,则序     号为i结点无右孩子结点
  c:如果2i+2<n,则序号为i结点的右孩子结点的序号为2i+2;如果2i+2>=n,则序号     为i结点无右孩子结点

4.二叉树的遍历
前序遍历(先根遍历):(1):先访问根节点;  (2):前序访问左子树;(3):前序访问右子树;  【1 2 3 4 5 6】
中序遍历:          (1):中序访问左子树;(2):访问根节点;    (3):中序访问右子树;  【3 2 4 1 6 5】
后序遍历(后根遍历):(1):后序访问左子树;(2):后序访问右子树;(3):访问根节点;      【3 4 2 6 5 1】
层序遍历:         (1):一层层节点依次遍历。
int array [10] = {1, 2, 3, '#', '#', 4, '#' , '#', 5, 6};
int array[15] = {1,2,'#',3,'#','#',4,5,'#',6,'#',7,'#','#',8};

猜你喜欢

转载自blog.csdn.net/humeapz/article/details/78697264
今日推荐