Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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 LeftRotate(self,x):
- elm_find = self.root
- if elm_find.left is not None:
- elm_find.data == x
- y = elm_find.left
- elm_find.left = y.right
- if self.root is not None:
- if self.root == elm_find:
- self.root = y
- else:
- self.root = y
- y.right = elm_find
- #break
- 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:
- if elm_find.left is not None:
- y = elm_find.left
- elm_find.left = y.right
- if elm_find.parent is not None:
- if elm_find.parent.left == elm_find:
- elm_find.parent.left = y
- else:
- elm_find.parent.right = y
- y.parent = elm_find.parent
- elm_find.parent = y
- y.right = elm_find
- break
- #return b
- 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):
- #i=0
- #while (i <= len(line))
- self.printlevel(self.root, 0)
- #i+=1
- b = BinaryTree()
- for i in line:
- b.add1(i)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement