2013-05-12 2 views
1

파이널에서 파이썬에서 이진 검색 트리에 값을 넣는 함수를 구현하는 마지막 및 실습 문제에 대해 검토하고 있습니다. 여기에 내가 사용하고있는 트리 구현이있다. 여기 파이썬에서 이진 검색 트리에 값 삽입하기

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

+0

http://stackoverflow.com/questions/5444394/implementing-binary-search-tree-in-python?rq=1 –

+0

doctest처럼 값을 넣어야합니다. –

답변

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) 부분에서 혼란 스럽다고 생각합니다. 삽입하는 방법을 완전히 이해하지 못했습니다. 그러나, 나는 그것을 통해 재귀하는 방법을 알고있었습니다. –

관련 문제