Mega Code Archive

 
Categories / Python Tutorial / Collections
 

Tree class

class Treenode:    def __init__( self, data ):       self._left = None       self._data = data       self._right = None    def __str__( self ):       return str( self._data )       class Tree:    def __init__( self ):       self._rootNode = None             def insertNode( self, value ):       if self._rootNode is None:            self._rootNode = Treenode( value )       else:           self.insertNodeHelper( self._rootNode, value )    def insertNodeHelper( self, node, value ):       if value < node._data:           if node._left is None:             node._left = Treenode( value )          else:             self.insertNodeHelper ( node._left, value )       elif value > node._data:          if node._right is None:              node._right = Treenode( value )          else:             self.insertNodeHelper( node._right, value )       else:           print value, "duplicate"    def preOrderTraversal( self ):       self.preOrderHelper( self._rootNode )    def preOrderHelper( self, node ):       if node is not None:          print node,          self.preOrderHelper( node._left )          self.preOrderHelper( node._right )    def inOrderTraversal( self ):       self.inOrderHelper( self._rootNode )    def inOrderHelper( self, node ):       if node is not None:          self.inOrderHelper( node._left )          print node,          self.inOrderHelper( node._right )    def postOrderTraversal( self ):       self.postOrderHelper( self._rootNode )    def postOrderHelper( self, node ):       if node is not None:          self.postOrderHelper( node._left )          self.postOrderHelper( node._right )          print node,           tree = Tree() values = "1 2 3 4 5 6 7 8 9 0 10" for i in values.split():    tree.insertNode( int( i ) ) tree.preOrderTraversal() print tree.inOrderTraversal() print tree.postOrderTraversal() print