zoukankan      html  css  js  c++  java
  • 数据结构学习之二叉树

      这些天一直在准备毕业,写论文,改论文。现在差不多了,偷点闲,学习了一下二叉树,写点小总结,用以备忘。

      先说一下树的定义(ps:这些定义都是一些通俗理解,不是真正的官方定义):(1)树由多个节点和边组成。(2)每个节点只有一个父节点但可以有多个子节点。(3)在树中只有一个例外,该节点没有父节点,该节点称为父节点。

      再来几个专业术语:

      (1)深度:从根节点到最底层节点的层数,跟节点为第一层。

      (2)叶子结点:没有子节点的节点被称为叶子结点。

      (3)节点的度:即当前节点的子节点的个数。

      (4)树的度:树中节点度最大的那个。

      再来树的分类:

      一般树:任意一个节点的子节点的个数都不受限制的树。

      二叉树:任意一个节点的子节点的个数最多两个,且子节点的位置不可更改(二叉树一定是有序树)。

      无序树:即树中节点的子节点从左到右顺序可变的树为无序树,不可变的为有序树。

      满二叉树:在不增加层数的前提下无法增加任何一个节点。(即该树从左到右,从上到下已经满了)。

      完全二叉树:如果只是删除了满二叉树最底层最右边连续若干个节点,这样形成的树就是一个完全二叉树(很容易发现,满二叉树也是完全二叉树)。

      再来二叉树的三种遍历方法:

      先序遍历:(1)先访问根节点(2)在先序访问左子树(3)在先序访问右子树。示例如下图所示:

      中序遍历:(1)先访问左子树(2)在中序访问根节点(3)在中序访问右子树。示例如下图所示:

      后序遍历:(1)先访问左子树(2)在访问右子树(3)在访问根节点。示例如下图所示:

    OK,就说这么多,有错误的地方欢迎大家指出来。

    个人的小总结,欢迎转载,转载请标明出处。

  • 相关阅读:
    Python使用selenium(二)
    自动化测试
    测试要求
    测试用例编写
    求职杂谈
    不会交谈的测试员,果然不是一个好的测试员
    浅谈微信小程序测试
    python 匿名函数lambda的用法
    python __xx__的定义和用处
    看django的感受
  • 原文地址:https://www.cnblogs.com/WuNaiHuaLuo/p/5567641.html
Copyright © 2011-2022 走看看