2013-05-12 76 views
1

我正在审查我的最终实践问题,并要求实现一个将值放入Python二叉搜索树中的函数。这是我正在使用的树实现。在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))) 
    """ 

谁能帮助我实现这个代码,因为我不知道从哪里开始呢?谢谢!

+0

你想把值放在树的末尾吗? – HennyH 2013-05-12 08:39:03

+0

http://stackoverflow.com/questions/5444394/implementing-binary-search-tree-in-python?rq=1 – 2013-05-12 08:56:50

+0

该值应放在像doctest – 2013-05-12 09:15:23

回答

5
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) 
+0

谢谢!这正是我所期待的。我想我对tree.left = Tree(item)和tree.right = Tree(item)部分感到困惑。我没有完全理解如何插入它;然而,我知道如何通过它缓解。 – 2013-05-12 09:17:15