• 二叉排序树的构造 && 二叉树的先序、中序、后序遍历 && 树的括号表示规则


    二叉排序树的中序遍历就是按照关键字的从小到大顺序输出(先序和后序可没有这个顺序)

    一、以序列 6 8 5 7 9 3构建二叉排序树:

    二叉排序树就是中序遍历之后是有序的;

    构造二叉排序树步骤如下;

    插入法构造:

     2、

     

     

    以此类推 将要插入的结点先跟根结点比较, 比根结点大进入右子树 反之进入 左子树;

    在跟进入的 左子树(右子树)的结点比较 方法同上;

    直到没有结点了  在插入;  你给的排序最后的二叉排序树如下;

     中序遍历结果是  :  3 4 5 6 7 8 9 ;

     先序遍历结果是 : 6 4 3 5 8 7 9 ;

    建立二叉排序树后进行查找,则等概率情况下查找成功的平均查找长度为(1+2*2+4*3)/7=17/7

    例题:

    已知长度为9的表16、3、7、11、9、26、18、14、15,建立二叉排序树后进行查找,则等概率情况下查找成功的平均查找长度为(31/9)

    本题考查二叉排序树的查找。
    二叉排序树又称为二叉查找树,其定义为:二叉排序树或者是一棵空树,或者是具有如下性质(BST性质)的二叉树:
    (1)若它的左子树非空,则左子树上所有结点的值均小于根结点;
    (2)若它的右子树非空,则右子树上所有结点的值均大于根结点;
    (3)左、右子树本身又各是一棵二叉排序树。
    在做该题时,首先将表中的9个元素放进二叉树中构成二叉排序树,在构造二叉排序树时,我们将表中的元素依次按照构造二叉排序树的规则往树中添加元素,在获得二叉排序树后,计算平均长度就变得简单了,为(1+2+2+3+3+4+5+5+6)/9=31/9。

    二、二叉树的先序、中序、后序遍历

    前序遍历:根节点->左子树->右子树(根->左->右)

    中序遍历:左子树->根节点->右子树(左->根->右)

    后序遍历:左子树->右子树->根节点(左->右->根)

    举个例子

    前序遍历:根结点 —> 左子树 —> 右子树(先遍历根节点,然后左右)

    这棵树的前序遍历为:ABDEGHCF

    中序遍历:左子树—> 根结点 —> 右子树(在中间遍历根节点)

    这棵树的中序遍历为:DBGEHACF

    后序遍历:左子树 —> 右子树 —> 根结点(最后遍历根节点)

    这棵树的后序遍历为:DGHEBFCA
     
     
    三、树的括号表示规则

    (1)若树T为空树,则其括号表示为空

    (2)若树T只包含一个结点,则其括号表示即为该结点本身

    (3)若树T由根结点A和它的m棵子树T1,T2,...,Tm构成,则其括号表示为:A(T1的括号表示,T2的括号表示,... ,Tm的括号表示)

    其中,子树的括号表示同样应该遵循以上规则

    实例:

     
    四、知道先序中序求后序
     

     

  • 相关阅读:
    常见加密算法概述
    IDEA常见错误解决
    linux Find命令教程
    用注册表更改DNS的代码分享
    关于javascript中的typeof和instanceof介绍
    javascript instanceof,typeof的区别
    Javascript typeof 用法
    浅析JavaScript中的typeof运算符
    玩转Linux文件描述符和重定向
    shell脚本 批量转换目录下文件编码
  • 原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/12003352.html
Copyright © 2020-2023  润新知