数据结构二叉树的遍历

二叉树前中后续遍历,先了解基本概念,再学二叉树的遍历。

操作方法

  • 01

    首先,来认识树的相关概念。结点的度是该结点有多少个孩子结点就是该结点的度(简单来说,一个结点向下有几根出去的线,度就是几)。如图所示,A的度是4,B和C的度是2,其它的度都是0。度为0又称作叶结点(终端结点),不为0的度就是分支结点(或非终端节点)。

  • 02

    孩子结点(或者是后继结点),如图所示,A的度是四,A的四个孩子结点分别是B、C、D、E。B的孩子结点分别是F和G。

  • 03

    双亲结点(或者称直接前驱结点),例如上一步说到的B、C、D、E是A的孩子结点,那么A就是B、C、D、E的双亲结点点,也就是直接前驱结点。B、C分别是F和G,H和I的双亲结点。

  • 04

    兄弟结点,例如B、C、D和E是兄弟结点,F和G是兄弟结点,H和I是兄弟结点。

  • 05

    区分树的度和结点的度。很好理解,结点的度中最大值就是树的度!例如图中的树的度是4,因为结点度中最大值是A的度是4。

  • 06

    结点的层次,根节点的层次为0,从根节点开始,后面的孩子结点都是其双亲结点的层次+1。如A的层次为0,B、C、D、E的层次是1,F、G是B的层次+1(即2),H、I是C的层次+1(即2)。树的深度,是结点层次的最大值,这颗树的深度是2。

  • 07

    二叉树由一个根结点和两个左子树和右子树构成,子树也是二叉树。5种形态:空结点, 无左右子树结点,只有左子树结点,只有右子树结点和左右子树都存在的结点。 满二叉树:二叉树种,所有分支结点都存在左右子树,切所有叶子结点都在一层上。 完全二叉树:有n个结点与满二叉树的结构相同。

  • 08

    再看看二叉树的遍历,分别是前序遍历、中序遍历和后序遍历。(根在中间、左边孩子),根节点(根),左子树(左)、右子树(右)。(遍历时,左边遍历完才能到右边) 如图,例子的前序遍历是:ABDHIMEJNCFKG。(简记口诀:根左右)

  • 09

    它的中序遍历是:HDMIBJNEAFKCG。(简记口诀:左根右)

  • 10

    它的后序遍历是:HMIDNJEBKFGC。(简记口诀:左右根)

  • 11

    做一下下面才、这题检验下学习成果。

  • 12

    答案:前序遍历:abdhinejcfkglomp 中序遍历:hdnibjeafkcolgmp 后续遍历:hnidjebkfolpmgca。 可以试想一下给出两个顺序的遍历,如何推算出二叉树图和写出第三个遍历。

(0)

相关推荐

  • 怎么正确理解二叉树的遍历

    二叉树就是一种树形存储结构,每个节点最多有两个子树. 操作方法 01 在计算机科学中,二叉树是每个节点最多有两个子树的树结构.通常子树被称作"左子树"(left subtree)和 ...

  • C语言编程基础知识总结

    操作方法 01 在编程语言学习中,学习和巩固基础知识是很重要的,因为用来用去还是遵守最基本的语法规则,小小的错误需要花费双倍的时间去检查,所以选择一开始就写好才是最明智的,C语言数据结构与算法基础知识 ...

  • 知道中序和后序遍历,画二叉树和写出前序遍历

    知道中序遍历和后续遍历,如何画出二叉树,并写出前序遍历.其实只要知道任意两个遍历,即可画出应有的二叉树,与是否是满二叉树无关!!! 操作方法 01 如图,例子来说明.知道中序和后序遍历,画二叉树和写出 ...

  • 二叉树的先序遍历的递归和非递归

    操作方法 01 //队列非递归遍历需要 template<class NodeType> class Stack { public: Stack(){nIndex = 0;} ~Stack ...

  • 数据结构:树二叉树

    树是N个节点的有限集,且仅有一个特定的节点为根节点,每一个集合本身又是一棵树,并且成为根的子树. 操作方法 01 概念: 树的节点:一个数据元素及指向其子树的分支,结点拥有子树的数成为结点的度. 叶子 ...

  • java如何创建和遍历数组

    不管在哪种编程语言中,数组都是常见的数据结构,它的定义是具有相同类型的,用一个标识符封装到一起的基本类型数据序列或对象序列.下面介绍的是一维数组和二维数组. 一维数组 01 我们先来介绍一维数组,一维 ...

  • C语言演示二叉树算法

    二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒.二叉树的第i层至多有2i − 1个结点;深度为k的二叉树至多有2k − 1个结点;对任何一棵二叉树T,如 ...

  • C语言版数据结构:[1]线性顺序表

    在数据结构中,线性表是入门级数据结构,线性表又分为顺序表和链表,这一节我们就说一下线性顺序表的C语言实现.坐标为您分享. 操作方法 01 第一步:线性顺序表的创建. 线性顺序表是存储在一个连续的数组中 ...

  • 二叉树怎么求前序序列和中序序列

    在数据结构中,如果给出二叉树的前序序列和中序序列,应该如何绘制出完整的二叉树呢?接下来为大家讲解一下 数据结构中经常会遇到给出一个树让你去求前序遍历和中序遍历的问题,类似于这样的问题有一定的方法,只要 ...