美文网首页数据结构
数据结构题目59:二叉排序树的查找

数据结构题目59:二叉排序树的查找

作者: 玲儿珑 | 来源:发表于2020-05-13 00:19 被阅读0次

题目:二叉排序树的查找。
解题思路:其查找过程是:
若二叉排序树为空,则查找失败,结束查找,返回信息null;
否则,将要查找的值与二叉排序树根结点的值进行比较,
若相等,则查找成功,结束查找,返回被查到结点的地址;
若不相等,则根据要查找的值与根结点值的大小关系决定是到根结点的左子树还是右子树中继续查找(查找过程同上),直到查找成功或者查找失败为止。
具体算法:
(一)非递归算法

function searchBST(T, item) {
    let p = T
    while ( p!=null ) {
        if ( p.data == item ) {
            return p
        }
        if ( item < p.data ) {
            p = p.lchild
        } else {
            p = p.rchild
        }
    }
    return null
}

(二)递归算法

function searchBST(T, item) {
    if ( T==null ) {
        return null
    }
    if ( T.data == item ) {
        return T
    }
    if ( item < T.data ) {
        return searchBST(T.lchild, item)
    } else {
        return searchBST(T.rchild, item)
    }
}

测试:
这里使用到建立二叉排序树sortTree(K)

let K = [5, 10, 5, 20, 17, 12, 19, 2]
var BST = sortTree(K)
searchBST(BST, 17)

相关文章

  • 数据结构题目59:二叉排序树的查找

    题目:二叉排序树的查找。解题思路:其查找过程是:若二叉排序树为空,则查找失败,结束查找,返回信息null;否则,将...

  • 数据结构实验之查找一:二叉排序树

    数据结构实验之查找一:二叉排序树 Time Limit: 400MS Memory Limit: 65536KB ...

  • 查找

    二分查找适用于有序表查找, 包括二叉排序树 散列查找请看本博客数据结构与算法hash表文章http://www.j...

  • 数据结构题目:树

    数据结构题目:树 题目:二叉排序树的构建与遍历 c++: 转码似乎有点问题,用utf-8就行了 java:

  • python实现二叉树遍历

    介绍:树是数据结构中非常重要的一种,主要的用途是用来提高查找效率,对于要重复查找的情况效果更佳,如二叉排序树、FP...

  • Binary Search Tree

    如果二叉排序树是平衡的,则n个节点的二叉排序树的高度为 ,其查找效率为 ,近似于折半查找。如果二叉排序树完全不平衡...

  • 查找

    静态查找顺序查找 折半查找 散列查找 动态查找二叉排序树 散列查找 ASL(平均查找长度) - 衡量查找算法效率的...

  • 剑指Offer--(3)查找空格

    title: 剑指Offer--(3)查找空格categories: 算法与数据结构tags: 数据结构 题目 请...

  • 数据结构--查找

    查找分类 有序查找(二分查找、插值查找、斐波拉契查找) 线性索引查找 二叉排序树 散列表

  • 算法和数据结构1.8二叉查找树

    二叉查找树(二叉搜索树或二叉排序树)是一种数据结构。采用了图的树形结构。数据存储于二叉查找树的各个结点中。 二叉查...

网友评论

    本文标题:数据结构题目59:二叉排序树的查找

    本文链接:https://www.haomeiwen.com/subject/rvywnhtx.html