Wednesday, May 6, 2020

Maths Questions And Answers On Outputdebug = False

#import random, math outputdebug = False def debug(msg): if outputdebug: print(msg) class Node(): def __init__(self, key): self.key = key self.left = None self.right = None class Binary_Search_Tree(): def __init__(self, *args): self.node = None self.height = -1 self.balance = 0; if len(args) == 1: for i in args[0]: self.insert(i) def height(self): if self.node: return self.node.height else: return 0 def is_leaf(self): return (self.height == 0) def insert_element(self, key): tree = self.node newnode†¦show more content†¦self.update_balances() self.lrotate() self.update_heights() self.update_balances() def rrotate(self): # Rotate left pivoting on self debug (Rotating + str(self.node.key) + right) A = self.node B = self.node.left.node T = B.right.node self.node = B B.right.node = A A.left.node = T def lrotate(self): # Rotate left pivoting on self debug (Rotating + str(self.node.key) + left) A = self.node B = self.node.right.node T = B.left.node self.node = B B.left.node = A A.right.node = T def update_heights(self, recurse=True): if not self.node == None: if recurse: if self.node.left != None: self.node.left.update_heights() if self.node.right != None: self.node.right.update_heights() self.height = max(self.node.left.height, self.node.right.height) + 1 else: self.height = -1 def update_balances(self, recurse=True): if not self.node == None: if recurse: if self.node.left != None: self.node.left.update_balances() if self.node.right !=

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.