Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #line = [5, 1, 10, 7, 8, 11, 3,15]
- #line = [5,2,3,4,1]
- #line = [5, 1, 10, 7, 8, 11, 13]
- #line = [5,2]
- line=[6,3,10,1,5,8,12,4,7,9,11,13]
- class Elm():
- def __init__(self, data, parent, left, right):
- self.data = data
- self.parent = parent
- self.left = left
- self.right = right
- def add(self, data):
- if data < self.data:
- if self.left is None:
- self.left = Elm(data, self, None, None)
- else:
- self.left.add(data)
- else:
- if self.right is None:
- self.right = Elm(data, self, None, None)
- else:
- self.right.add(data)
- # def leftrotate(self, data):
- class BinaryTree():
- def __init__(self):
- self.root = None
- def add1(self,data):
- if self.root is None:
- self.root = Elm(data, None, None, None)
- else:
- self.root.add (data)
- # def findmin(self):
- # e = self.root
- # while e.left!=None:
- # e = e.left
- # return e.data
- def printlevel(self, root, level):
- if root == None:
- return
- self.printlevel(root.left, level+1)
- print ("\t" * level + str(root.data))
- self.printlevel(root.right, level+1)
- def print_tree(self,root):
- #i=0
- #while (i <= len(line))
- self.printlevel(self.root, 0)
- #i+=1
- b = BinaryTree()
- for i in line:
- b.add1(i)
- #print(b.findmin())
- def LeftRotate(b,x):
- elm_find = b.root
- while elm_find != None:
- if x > elm_find.data:
- elm_find = elm_find.right
- elif x < elm_find.data:
- elm_find = elm_find.left
- else:
- y = x.left
- x.left = y.right
- if x.parent != None:
- if x.parent.left == x:
- x.parent.left = y
- else:
- x.parent.right = y
- y.parent = x.parent
- x.parent = y
- y.right = x
- return b
- def l(x):
- LeftRotate(x)
- b.print_tree(line)
- #print(b.l(10))
- #print(b.__delitem__(10))
- print(LeftRotate(b,10))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement