• 二叉树的计算


    二叉树是一种典型的非线性结构,如果在一个数据结构中,每个节点只能有一个父节点但是可以有多个子节点,这样的数据结构我们就把它称为树,如果我们再加一个规定,每个父节点最多只有2个子节点的话,那么这样的树我们就把它称为二叉树。既然刚才说了二叉树一个节点下最多只有2个子节点,那就意味着对于二叉树中的任意一个节点有三种情况,对于这三种情况,我们分别把这个父节点称为度为2的节点、度为1的节点、度为0的节点,也就是说一个父节点它下面有几个子节点那么它的度就是几,对于度为0的子节点来说由于它没有子节点了也把它称为叶子节点。所以学了二叉树就要知道二叉树并不是表示每个节点下面必须开两个叉而是最多开两个叉

     现在学一个新的概念就是二叉树的层数,我们看下面的二叉树,最上面的节点称为根节点,一个二叉树只能有一个根节点,如果把根节点叫第一层的话,下面依次是第二层第三层,我们发现二叉树越往下它所能容纳的节点数就越多,发现每一层所能容纳最多的节点数是上一层的二倍,所以这样一来如果想要计算第n层最多容纳多少个节点,把刚才的规律总结出来就是2^(n-1)个——读2的n-1次幂。现在来算一算假设就有一个层数为6的二叉树它一共有多少个节点,像这样每一层都达到了最大容量的二叉树我们称为满二叉树。

     了解二叉树中节点数和层数的关系之后,再来介绍一个二叉树中一个非常重要的数学关系,就是对于任何一个二叉树来说,它的叶子节点数永远比度为2的节点数多1,

    二叉树的遍历

    所谓遍历就是将数据结构中的数据全部访问一遍的过程,既要做到一个都不能少又要做到都不能重复,在之前学习的线性表中,遍历非常的简单,我们只需要从头到尾一个挨着一个访问就可以了,虽然简单但是完全可以满足遍历的要求,但是对于二叉树来说,它的结构比线性表复杂多了,如果想在遍历的过程中一个都不少又一个都不重复,就必须要有一套系统的遍历方法才行。

     一般来说在二叉树中有三种方式遍历,分别是先序遍历、中序遍历和后序遍历。

     

     

    这三种遍历规则看到规则知道怎么遍历,但是给先序、中序、后序记不住哪个是怎么遍历的,实际上刚才这三种遍历规则是非常有讲究的,首先这三种遍历方式都一定是先左后右,没有先遍历右边后遍历左边这种说法,左永远都在右的前面,不同的是中的位置,先序中就在前面,中序中就在中间,后序中就在后面,其实这三种遍历方式是以中的位置来命名的

  • 相关阅读:
    1121 Django基本
    1121 爬虫简单面条版
    1118 DOM
    1114 CSS基础
    1116 前端的练习--博客界面
    1112 前端基础之标签
    仿优酷错误
    1107 python自定义实现ORM
    cesm1_2_2在南信大大型机上的移植以及运行简单case的步骤
    ERROR:105: Unable to locate a modulefile for 'xxx'
  • 原文地址:https://www.cnblogs.com/djlindex/p/12144082.html
Copyright © 2020-2023  润新知