Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中向二进制搜索树插入值_Python_Binary Search Tree - Fatal编程技术网

在Python中向二进制搜索树插入值

在Python中向二进制搜索树插入值,python,binary-search-tree,Python,Binary Search Tree,我正在复习我的最后一道练习题,其中一道练习题要求实现一个函数,将值放入Python中的二进制搜索树中。下面是我正在使用的树实现 class Tree(object): def __init__(self, entry, left=None, right=None): self.entry = entry self.left = left self.right = right 这是我需要填写的函数 def insert(item, tree

我正在复习我的最后一道练习题,其中一道练习题要求实现一个函数,将值放入Python中的二进制搜索树中。下面是我正在使用的树实现

class Tree(object):
    def __init__(self, entry, left=None, right=None):
        self.entry = entry
        self.left = left
        self.right = right
这是我需要填写的函数

def insert(item, tree):
    """
    >>> t = Tree(5, Tree(1, None, Tree(4)), Tree(7, Tree(6), Tree(8)))
    >>> insert(2, t)
    >>> t
    Tree(5, Tree(1, None, Tree(4, Tree(2), None)), Tree(7, Tree(6), Tree(8)))
    """
谁能帮我实现这个代码,因为我不知道从哪里开始?谢谢

def插入(项目,树):
def insert(item, tree):
    if (item < tree.entry):
        if (tree.left != None):
            insert(item, tree.left)
        else:
            tree.left = Tree(item)
    else:
        if (tree.right != None):
            insert(item, tree.right)
        else:
            tree.right = Tree(item)
如果(项目
树是一种非线性数据结构。树由一组顶点和一组边创建。平均搜索复杂度为logn。让我们考虑如何将值插入到树中。 首先,你要创建一个顶点。换句话说,你要创建节点。然后,那些被创建的节点以分层的方式插入。在创建节点类时,你可以在构造函数中初始化节点类的所有属性。实际上就像这样

class Node:
      def __init__(self,data):
            self.data=data
            self.left=None
            self.right=None
开始时,节点的数据=数据,节点的左子节点为无,节点的右子节点为无。然后,您可以使用创建的节点创建二叉搜索树

class tree:

     def __init__(self):
           self.root=None

     def insert(self,data):
           if(self.root==None):
                  self.root=Node(data)
           else:
                  self._insert(data,self.root)


     def _insert(self, data, curNode):
           if(curNode.data>data):
                  if(curNode.left==None):
                         curNode.left=Node(data)

                  else:
                         self._insert(data,curNode.left)
           else:
                   if(curNode.right==None):
                         curNode.right=Node(data)
                   else:
                         self._insert(data,curNode.right)

首先,根节点是在树类的构造函数方法下初始化的。然后,使用insert函数插入节点。使用任何树遍历方法都可以打印树的元素。我想,您可以理解。谢谢

你想把值放在树的末尾吗?值应该像doctest一样放进去谢谢!这正是我想要的。我想我在树上搞糊涂了。左=树(项目)和树。右=树(项目)部分。我不完全理解如何插入它;然而,我知道如何通过它递归。