Python 二叉搜索树无法插入

Python 二叉搜索树无法插入,python,data-structures,binary-search-tree,Python,Data Structures,Binary Search Tree,当只向根插入值时,它工作得很好。但在插入其他节点时,它无法插入,我得到的唯一结果是根值。代码如下: class BinarySearchTree(): class BinarySearchTreeNode(): def __init__(self,leftchildnode,rightchildnode,item): self.leftchildnode = leftchildnode self.rightchildnode = rightchildnod

当只向根插入值时,它工作得很好。但在插入其他节点时,它无法插入,我得到的唯一结果是根值。代码如下:

class BinarySearchTree():
class BinarySearchTreeNode():
    def __init__(self,leftchildnode,rightchildnode,item):
        self.leftchildnode = leftchildnode
        self.rightchildnode = rightchildnode
        self.item = item

def __init__(self):
    self.root = None

def insert(self,item):
    if self.root == None:
        self.cur = self.BinarySearchTreeNode(None,None,item)
        self.root = self.cur
    else:
        self.recursiveinsert(self.root,item)

def recursiveinsert(self,node,item):
    if node is None:
        node = self.BinarySearchTreeNode(None,None,item)
    else:
        if item < node.item:
            self.recursiveinsert(node.leftchildnode,item)
        else:
            self.recursiveinsert(node.rightchildnode,item)

def inorderdisplay(self):
    self.recursive_inorder_display(self.root)
    
def recursive_inorder_display(self,BinarySearchTreeNode):
    if BinarySearchTreeNode != None:
        self.recursive_inorder_display(BinarySearchTreeNode.leftchildnode)
        print(BinarySearchTreeNode.item)
        self.recursive_inorder_display(BinarySearchTreeNode.rightchildnode)

tree = BinarySearchTree()
tree.insert(13)
tree.insert(2)
tree.insert(15)
tree.inorderdisplay()
class BinarySearchTree():
类BinarySearchTreeNode():
def uuu init uuuu(self、leftchildnode、righchildnode、item):
self.leftchildnode=leftchildnode
self.rightchildnode=rightchildnode
self.item=项目
定义初始化(自):
self.root=None
def插件(自身,项目):
如果self.root==无:
self.cur=self.BinarySearchTreeNode(无,无,项)
self.root=self.cur
其他:
self.recursiveinsert(self.root,item)
def recursiveinsert(自身、节点、项):
如果节点为无:
node=self.BinarySearchTreeNode(无,无,项)
其他:
如果项目
一旦我运行InOrder,我得到的唯一结果是13,你能指出错误在哪里吗?

  • 应该修改BinaryTree类中的init语句

  • 您应该以递归的方式传递left和right元素 请尝试查看此github回购以了解更多详细信息

因此,您可以查看下面的github repo以了解详细代码

  • 应该修改BinaryTree类中的init语句

  • 您应该以递归的方式传递left和right元素 请尝试查看此github回购以了解更多详细信息

因此,您可以查看下面的github repo以了解详细代码

#This should be changed to
    def __init__(self,leftchildnode,rightchildnode,item):
         self.leftchildnode = leftchildnode
         self.rightchildnode = rightchildnode
         self.item = item

#Please use this for the structure

    def __init__(self, item):
         self.leftchildNode = None
         self.rightchildNode = None
         self.item = item