树与二叉树

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ght886/article/details/79976008

树的基本概念:



1、结点的度

   结点的度是子结点的个数。

   例如:结点1有三个字结点2,3,4,所以结点1的度为3。

2、树的度

   树的度等于所有结点度中度最高的值。 

   例如:上图中结点度最高为3,所以树的度为3。

3、叶子结点

   叶子结点是度为0的结点即没有子结点的结点。

   例如:上图中3,5,6,7,9,10。

4、分支结点

   分支结点是除了叶子结点,树中的其他所有结点。

   例如:上面树的分支结点为1,2,4,8。

5、内部结点

   内部结点是除了根结点以及叶子结点或在分支结点的基础之上在去掉根结点。

    例如:上图中树的内部结点为2,4,8。

6、父结点、子结点、兄弟结点

   父节点、子结点和兄弟结点是相对而言的。

    例如:上图中结点1是结点2,3,4的父节点,结点2,3,4也是结点1的子结点,结点2,3,4又是兄弟结点。

7、层次

   图中我们已经表出来了,根为第一层,根的孩子为第二层,依此类推,若某结点在第i层,则其孩子结点在第i+1层。


树的遍历


1、前序遍历

   基本思想:前序遍历就是先访问根结点,再访问叶子结点。
   图中树的前序遍历为:1,2,5,6,7,3,4,8,9,10。
2、后序遍历
基本思想:本后序遍历就是先访问子结点,再访问根结点。
   图中树的后序遍历为:5,6,7,2,3,9,10,8,4,1
3、层次遍历
   基本思想:从第一层开始,依此遍历每层,直到结束。

   图中树的层次遍历为:1,2,3,4,5,6,7,8,9,10


二叉树的概念和特性


一般二叉树性质:


完全二叉树性质:
1)具有n个节点的完全二叉树的深度为[log2n]+1,其中[log2n]+1是向下取整
2)若对含 n 个结点的完全二叉树从上到下且从左至右进行 1 至 n 的编号,则对完全二叉树中任意一个编号为 i 的结点:
(1) 若 i=1,则该结点是二叉树的根,无双亲, 否则,编号为 [i/2] 的结点为其双亲结点;  
(2) 若 2i>n,则该结点无左孩子,否则,编号为 2i 的结点为其左孩子结点;
(3) 若 2i+1>n,则该结点无右孩子结点,否则,编号为2i+1 的结点为其右孩子结点。


满二叉树性质:

  在满二叉树中,叶节点的个数比分支节点的个数多1


二叉树遍历


1、前序遍历(与树的前序遍历一样)
      基本思想:先访问根结点,再先序遍历左子树,最后再先序遍历右子树即根—左—右。

      图中前序遍历结果是:1,2,4,5,7,8,3,6


2、中序遍历
      基本思想:先中序遍历左子树,然后再访问根结点,最后再中序遍历右子树即左—根—右。

      图中中序遍历结果是:4,2,7,8,5,1,3,6


3、后序遍历
      基本思想:先后序遍历左子树,然后再后序遍历右子树,最后再访问根结点即左—右—根。

      图中后序遍历结果是:4,8,7,5,2,6,3,1


4、层次遍历(与树的层次遍历一样)
      基本思想:从第一层开始,依此遍历每层,直到结束。

      图中层次遍历结果是:1,2,3,4,5,6,7,8



树与二叉树区别
1、树可以有多个子结点,二叉树最多只能两个结点。
2、树中的子结点是无序的,二叉树是分左子结点和右子结点。
3、二叉树不是特殊树,而是独立的数据结构。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页