zoukankan      html  css  js  c++  java
  • 二叉搜索树的遍历方式

       二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树

      二叉树的遍历主要有三种:

    (1)先(根)序遍历(根左右)

    (2)中(根)序遍历(左根右)

    (3)后(根)序遍历(左右根)

    举个例子:



    先(根)序遍历(根左右):A B D H E I C F J K G

    中(根)序遍历(左根右) : D H B E I A J F K C G

    后(根)序遍历(左右根) : H D I E B J K F G C A

        以后(根)序遍历为例,每次都是先遍历树的左子树,然后再遍历树的右子树,最后再遍历根节点,以此类推,直至遍历完整个树。

        此外,还有一个命题:给定了二叉树的任何一种遍历序列,都无法唯一确定相应的二叉树。但是如果知道了二叉树的中序遍历序列和任意的另一种遍历序列,就可以唯一地确定二叉树。

    例子1:已知二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是(cedba)。

    (1)中序遍历:debac

    后序遍历:dabec

    后序遍历序列的最后一个结点是根结点,所以可知c为根结点。

    中序遍历序列的根结点在中间,其左边是左子树,右边是右子树。所以从中序遍历序列中可看出,根结点c只有左子树,没有 右子树。

     

    (2)中序遍历:deba

    后序遍历:dabe

    后序遍历序列的最后一个结点是根结点,所以可知e为c的左子树的根结点。

    中序遍历序列的根结点在中间,其左边是左子树,右边是右子树。所以从中序遍历序列中可看出,根结点e的左子结点是d,右子树是ba。

     

    (3)中序遍历:ba

    后序遍历:ab

    由后序遍历序列可知b为e的右子树的根结点。由中序遍历序列中可看出,a为根结点b的右子结点。

    树的结构如下:

    转载自:https://blog.csdn.net/qq_34840129/article/details/80619761

    更多内容,后续待补:https://www.cnblogs.com/mcomco/p/10184033.html

  • 相关阅读:
    渗透测试中的文件传输通道1- cmd下下载文件
    内网渗透常用命令
    技术剖析中国菜刀原理
    win8 iis安装及网站发布
    C++与C的区别一
    C语言实现单链表,并完成链表常用API函数
    C语言实现数组及链表的快速排序
    使用C语言封装数组,动态实现增删改查
    C语言中静态断言的使用
    二分查找法C语言实现
  • 原文地址:https://www.cnblogs.com/-citywall123/p/11456991.html
Copyright © 2011-2022 走看看