当前位置: 首页 > 知识库问答 >
问题:

Python中BST(二叉搜索树)Testdome

翁宏茂
2023-03-14

这里有问题

二叉搜索树(BST)是一种二叉树,其中每个节点的值大于或等于该节点左子树中所有节点的值,而小于该节点右子树中所有节点的值。

编写一个函数,根据使用的时间有效地检查给定的二叉搜索树是否包含给定的值。

import collections
Node = collections.namedtuple('Node', ['left', 'right', 'value'])

def contains(root, value):
    if value == root.value:
        return True
    elif value > root.value:
        if root.right != None:
            return contains(root.right, value)
    elif value < root.value:
        if root.left != None:
            return contains(root.right, value)


n1 = Node(value=1, left=None, right=None)
n3 = Node(value=3, left=None, right=None)
n2 = Node(value=2, left=n1, right=n3)

print(contains(n2, 2))

共有1个答案

蔚和安
2023-03-14

您需要首先检查root是否为none,然后返回false,您不需要检查root.left是none还是root.right是none

那么就像前面提到的另一个答案一样,您的代码看起来总是正确的。

如果您要查找的值小于root值,请转到左侧。

def contains(root, value):
    if root is None:
        return False
    if value == root.value:
        return True
    if value > root.value:
        return contains(root.right, value)
    if value < root.value:
        return contains(root.left, value)
 类似资料:
  • 编写一个函数,如果给定的二叉搜索树包含给定的值,则返回1,否则返回0。 例如,对于以下树: N1(值:1,左:null,右:null) n2(值:2,左:n1,右:n3) N3(值:3,左:null,右:null) 对contains(&n2,3)的调用应返回1,因为根位于n2的树包含编号3。 函数应该返回1,然而,它返回0或者根本不返回。

  • 二叉树 : 闲话少说,直接上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>BST</title> </head> <body> <script> //结点 function Node(data,left,right){ this.data=data; t

  • 我很难按我教授想要的格式打印出一个二叉搜索树。 他的格式是这样的: 我的代码:

  • 谁能帮我弄清楚我做错了什么,所以我得到了这个输出错误- 当我测试程序是否插入树的第一个根时,插入函数工作正常,并且成功创建了第一个根,但一旦我将根分配给当前和while循环以搜索父项,然后在其上插入新值,我就会得到NameError:/ 下面是我的代码使用python的实现: 谢谢你 我正在尝试在我的二叉搜索树中插入一个新值,因此有2种情况: 如果BST为空(这很简单,传递正确) 另一种情况是当我

  • 我正在用python开发一个二叉查找树。但是我的检索方法并不像我希望的那样工作。只有当我想检索根节点时,它才返回正确的值,对于所有其他节点,它都不返回任何值。 下面是我的节点类的代码: 我的二叉树代码: 所以Bintree中的最后一个方法为除Root之外的所有值返回Not,但它应该返回节点的值。 填充树:

  • 树的特征和定义 树(Tree)是元素的集合。我们先以比较直观的方式介绍树。下面的数据结构是一个树: 树有多个节点(node),用以储存元素。某些节点之间存在一定的关系,用连线表示,连线称为边(edge)。边的上端节点称为父节点,下端称为子节点。树像是一个不断分叉的树根。 每个节点可以有多个子节点(children),而该节点是相应子节点的父节点(parent)。比如说,3,5是6的子节点,6是3,