Advertisement
Guest User

binarytree

a guest
Aug 26th, 2016
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.90 KB | None | 0 0
  1.  
  2. class Node:
  3.     def __init__(self, val, key):
  4.         self.l = None
  5.         self.r = None
  6.         self.v = val
  7.         self.key = key
  8.  
  9. class Tree:
  10.  
  11.     def __init__(self):
  12.         self.root = None
  13.  
  14.     def getRoot(self):
  15.         return self.root
  16.  
  17.     def add(self, val, key):
  18.         if(self.root == None):
  19.             self.root = Node(val, key)
  20.         else:
  21.             self._add(val, self.root, key)
  22.  
  23.     def _add(self, val, node, key):
  24.         if(val < node.v):
  25.             if(node.l != None):
  26.                 self._add(val, node.l, key)
  27.             else:
  28.                 node.l = Node(val, key)
  29.         else:
  30.             if(node.r != None):
  31.                 self._add(val, node.r, key)
  32.             else:
  33.                 node.r = Node(val, key)
  34.  
  35.  
  36.     def return_key(self, val, node):
  37.         data = node
  38.         if(val < node.v):
  39.             if(node.l != None):
  40.                 self.return_key(val, node.l)
  41.             else:
  42.                 #print node.v
  43.                 return node
  44.         else:
  45.             if(node.r != None):
  46.                 #print node.v
  47.                 self.return_key(val, node.r)
  48.             else:
  49.                 print node.v
  50.                 return node
  51.  
  52.     def deleteTree(self):
  53.         # garbage collector will do this for us.
  54.         self.root = None
  55.  
  56.     def printTree(self):
  57.         if(self.root != None):
  58.             self._printTree(self.root)
  59.  
  60.     def _printTree(self, node):
  61.         if(node != None):
  62.             self._printTree(node.l)
  63.             print str(node.v) + ' '
  64.             self._printTree(node.r)
  65.  
  66.  
  67. if __name__ == '__main__':
  68.     tree = Tree()
  69.     tree.add(3, 10)
  70.     tree.add(4, 20)
  71.     tree.add(0, 30)
  72.     tree.add(8, 40)
  73.     tree.add(2, 50)
  74.     #tree.printTree()
  75.     print ((tree.find(3)).key)
  76.     print ((tree.return_key(6, tree.getRoot())))
  77.     #tree._printTree(Node(2))
  78.     #tree.deleteTree()
  79.     #tree.printTree()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement