如何实现python程序,用户给出的输入是否会生成二进制搜索树?

时间:2017-02-22 18:55:23

标签: python python-3.x data-structures binary-tree binary-search-tree

我想实现这段代码但是我多次失败了。任何人都可以给我这个代码的答案吗?

import sys, threading

sys.setrecursionlimit(10**7) # max depth of recursion
threading.stack_size(2**25)  # new thread will get stack of such size

def IsBinarySearchTree(tree):
  # Implement correct algorithm here

  if tree.right > tree.nodes:
  return True
  if tree.left < tree.nodes:
  return True


def main():
  nodes = int(sys.stdin.readline().strip())
  tree = []
  for i in range(nodes):
    tree.append(list(map(int, sys.stdin.readline().strip().split())))
  if IsBinarySearchTree(tree):

打印(“正确”)       其他:         打印( “不正确”)

  threading.Thread(target=main).start()

1 个答案:

答案 0 :(得分:0)

所以我不会在这里提供任何代码,因为这显然是一个硬件分配,理解这一点很重要。

BST本质上是一个树,其中给定元素左侧的每个元素都小于该元素,并且给定元素右侧的每个元素都大于给定元素。

确定给定树是否为BST的一种方法是递归检查左右子树并检查这些子树是否也是BST。要执行此操作,请检查子树的左右子树是否为BST,依此类推,直到到达树的底部。到达树的底部后,您可以明确地说某个树是否为BST,但您必须通过检查树中的每个元素来到达“底部”!

我希望这有助于您了解如何开始。