首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【算法】之二叉搜索树(BST)

    二叉搜索树(BST) 解析: 二叉搜索树(Binary Search Tree,BST)是一种特殊的二叉树,它满足以下条件: 每个节点最多有两个子节点; 左子节点的值小于等于当前节点的值; 右子节点的值大于等于当前节点的值...二叉搜索树可以用来存储一组有序的数据,并且可以高效地执行插入、删除和搜索操作。由于其特殊的结构,二叉搜索树在某些应用场景下非常有用,比如在搜索引擎中构建索引,实现字典等。...搜索功能:二叉搜索树可以高效地进行搜索操作,通过节点的比较和不断的二分查找,可以快速定位目标元素。基本原理也是一种通过逻辑推理和实证研究来寻找事物的本质和规律。...二叉搜索树的搜索操作: 搜索操作是二叉搜索树中的常见操作,用来查找某个特定的值是否存在于树中。从根节点开始,将待搜索的值与当前节点的值进行比较。如果相等,则找到了目标节点。...如果待搜索的值小于当前节点的值,则继续在左子树中搜索;如果待搜索的值大于当前节点的值,则继续在右子树中搜索。如果遇到空节点,则表明该值不在树中。

    21910

    第38期:BST 的搜索(小白必看)

    01、题目分析 第700题:二叉搜索树中的搜索 给定二叉搜索树(BST)的根节点和一个值。你需要在 BST 中找到节点值等于给定值的节点。返回以该节点为根的子树。...02、复习巩固 先复习一下,二叉搜索树(BST)的特性: 若它的左子树不为空,则所有左子树上的值均小于其根节点的值 若它的右子树不为空,则所有右子树上的值均大于其根节点得值 它的左右子树也分别为二叉搜索树...如下图就是一棵典型的BST: ?...03、图解分析 假设目标值为 val,根据BST的特性,我们可以很容易想到查找过程 如果val小于当前结点的值,转向其左子树继续搜索; 如果val大于当前结点的值,转向其右子树继续搜索; 如果已找到,则返回当前结点...; 迭代:利用变量的原值推出新值称为迭代,或者说迭代是函数内某段代码实现循环;

    66220

    深入理解二叉搜索树(BST)

    二叉搜索树简介 二叉搜索树(BST) 是一种具有特殊排序性质的二叉树,能够高效地执行数据检索、插入和删除操作。...这一特性使得 BST 成为一种非常重要的数据结构,适用于搜索和排序任务,因为它提供了一种逻辑清晰且直接的方式来存储和检索有序数据。...二叉搜索树的性能分析 BST 的性能直接受到树结构的影响。理想情况下,我们希望树是平衡的,以最小化高度,从而确保良好的性能。...二叉搜索树与二分查找的局限性 BST 提供了与二分查找相似的搜索效率(),但有一些附加的灵活性: 二分查找 需要将数据存储在连续的结构(如数组)中,并且保持有序,这使得 插入 和 删除 的代价很高(...在有两个子节点时,我们使用右子树中的最小节点来替换要删除的节点,以保持 BST 的性质。 二叉搜索树的使用场景 1.

    61710

    二叉搜索树 (BST) 的创建以及遍历

    二叉搜索树(Binary Search Tree) : 属于二叉树,其中每个节点都含有一个可以比较的键(如需要可以在键上关联值), 且每个节点的键都大于其左子树中的任意节点而小于右子树的任意节点的键。...1、BST 的总体结构: ? 主要的几种变量以及方法如上图所示,主要有插入、排序、删除以及查找等方法。键采用泛型,继承 IComparable, 便于比较。 其中节点的类如下图: ?...BST 类代码如下: 1 public class BST where Tkey : IComparable 2 { 3 private Node...证明二叉树为搜索树 根据定义,搜索树是二叉树的基础上添加的一个条件: 节点左子树全部节点小于节点, 节点右子树大于节点。中序遍历,全部节点按序遍历,由此我们只需要证明后一个节点大于前一个节点。

    93430

    Golang函数

    本节将探讨golang 的函数部分 函数的结构分析函数的定义 函数的层次 函数的作用域 匿名函数 立即执行函数 闭包 函数存在的意义 函数是一段代码的封装 使用函数可以使结构更加清晰与简洁 代码重用 函数存在的一个非常明显的作用和意义就是代码重用...初探Golang函数 不知道你是否还记得我们写的第一个代码HelloWorld,来我们对他进行分析一下 package mainimport "fmt"func main() { fmt.Println...括号 () 后还可以有函数的返回值,因为 main 函数没有返回值,所以这里没有定义。 {} 函数体,你可以在函数体里书写代码,写该函数自己的业务逻辑。...// 调用函数 // 返回值需要我们打印,才能显示出来 fmt.Println(t2()) // 3} 函数结构分析 由于main函数的定义并不利于理解golang的函数,那么我们自定义一个函数。...且不可被函数外部的访问 golang的寻找变量的方式体现可简单理解为就近原则;示例如下 package mainimport "fmt"var aA = 1func f1() { aA := 2 fmt.Println

    72010

    看动画学算法之:二叉搜索树BST

    比如,对于二叉树中的每个节点,如果左子树节点的元素都小于根节点,而右子树的节点的元素都大于根节点,那么这样的树被叫做二叉搜索树(Binary Search Tree)简称BST。...看一张图直观的感受一下BST: BST的构建 怎么用代码来构建一个BST呢?...的搜索 先看下BST的搜索,如果是上面的BST,我们想搜索32这个节点应该是什么样的步骤呢?...先上图: 搜索的基本步骤是: 从根节点41出发,比较根节点和搜索值的大小 如果搜索值小于节点值,那么递归搜索左侧树 如果搜索值大于节点值,那么递归搜索右侧树 如果节点匹配,则直接返回即可。...return search(node.right, data); } BST的插入 搜索讲完了,我们再讲BST的插入。

    62030
    领券