树和二叉树

来源:互联网 发布:讲诚信 知礼仪 编辑:程序博客网 时间:2024/06/02 18:02

1、树


  树的遍历分为前序遍历、后序遍历和层次遍历。


              


  ● 前序遍历:在任意子树中,遍历顺序为父节点、左孩子结点、右孩子结点。上图前序遍历顺序为:1 2 5 6 7 3 4 8 9 10 。

  ● 后序遍历:在任意子树中,遍历顺序为左孩子结点、右孩子结点、父节点。上图后序遍历顺序为:5 6 7 2 3 9 10 8 4 1 。

  ● 层次遍历:从上到下为树分层,第一层可为0层也可为1层,然后逐层遍历。上图层次遍历顺序为:1 2 3 4 5 6 7 8 9 10 。

 

2、二叉树


  值得注意的是,二叉树不是特殊的树,它是一种独立的数据结构。


             


   满二叉树:任意树内部节点的度都为2;

   完全二叉树:二叉树的n-1层都为满二叉树,并且第n层的节点是从左向右依次排列的;

   非完全二叉树:不满足完全二叉树的二叉树。


  二叉树的重要特性:


    ● 二叉树第i层上的结点数目最多为2i-1(上标)(i≥1);

    ● 深度为k的二叉树至多有2k-1(上标)个结点(k≥1);

    ● 在任意-棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则no=n2+1;


    还有:


        


3、二叉树的遍历


  二叉树的遍历相对于树的遍历多了一个中序遍历,即按照左子节点、父节点、右子节点的顺序遍历,例如对如下的二叉树有:


                  


  前序遍历:1 2 4 5 7 8 3 6 ; 

  中序遍历:4 2 7 8 5 1 3 6 ;

  后序遍历:4 8 7 5 2 6 3 1 ;

  层次遍历:1 2 3 4 5 6 7 8 。


4、树与二叉树的转换


     


  ● 转换标准:树的子节点全部作为二叉树的左节点,树的兄弟节点作为二叉树的右节点。

  ● 简便方法:树的节点与子节点连线中只保留最左边的一条,然后横向相连,其中黑色斜线作为左子树的边,蓝色横线作为右子树的边,如图2。

  ● 归纳总结:转换之后,树的前序遍历和二叉树的前序遍历相同;树的后序遍历等于二叉树的中序遍历。




3 0