Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Node:
- def __init__(self, val):
- self.l = None
- self.r = None
- self.v = val
- class Tree:
- def __init__(self):
- self.root = None
- def getRoot(self):
- return self.root
- def add(self, val):
- if(self.root == None):
- self.root = Node(val)
- else:
- self._add(val, self.root)
- def _add(self, val, node):
- if(val < node.v):
- if(node.l != None):
- self._add(val, node.l)
- else:
- node.l = Node(val)
- else:
- if(node.r != None):
- self._add(val, node.r)
- else:
- node.r = Node(val)
- def find(self, val):
- if(self.root != None):
- return self._find(val, self.root)
- else:
- return None
- def _find(self, val, node):
- if(val == node.v):
- return node
- elif(val < node.v and node.l != None):
- self._find(val, node.l)
- elif(val > node.v and node.r != None):
- self._find(val, node.r)
- def deleteTree(self):
- # garbage collector will do this for us.
- self.root = None
- def printTree(self):
- if(self.root != None):
- self._printTree(self.root)
- def _printTree(self, node):
- if(node != None):
- self._printTree(node.l)
- print str(node.v) + ' '
- self._printTree(node.r)
- def hm_L_ch(self):
- if (self.root != None):
- return self._hm_ch(self.root, k = -1)
- else: return 0;
- def _hm_ch(self, node, k):
- if(node != None):
- k = k + 1
- self._hm_ch(node.l, k)
- self._hm_ch(node.r, k)
- return k
- else: return None
- N = input()
- a = []
- tree = Tree()
- i = 0
- while i < N:
- k = input()
- tree.add(k)
- i = i + 1
- print tree.hm_L_ch()
- #tree.printTree()
- #print (tree.find(3)).v
- #print tree.find(10)
- #tree.deleteTree()
- #tree.printTree()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement