Advertisement
Guest User

Untitled

a guest
Oct 25th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.04 KB | None | 0 0
  1. line=[6,3,10,1,5,8,12,4,7,9,11,13]
  2.  
  3.  
  4.  
  5. class Elm():
  6. def __init__(self, data, parent, left, right):
  7. self.data = data
  8. self.parent = parent
  9. self.left = left
  10. self.right = right
  11.  
  12.  
  13.  
  14.  
  15. def add(self, data):
  16. if data < self.data:
  17. if self.left is None:
  18. self.left = Elm(data, self, None, None)
  19. else:
  20. self.left.add(data)
  21. else:
  22. if self.right is None:
  23. self.right = Elm(data, self, None, None)
  24. else:
  25. self.right.add(data)
  26.  
  27. # def leftrotate(self, data):
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35. class BinaryTree():
  36.  
  37. def __init__(self):
  38. self.root = None
  39.  
  40.  
  41. def add1(self,data):
  42. if self.root is None:
  43. self.root = Elm(data, None, None, None)
  44. else:
  45. self.root.add (data)
  46.  
  47.  
  48. # def findmin(self):
  49. # e = self.root
  50. # while e.left!=None:
  51. # e = e.left
  52. # return e.data
  53. def LeftRotate(self,x):
  54. elm_find = self.root
  55. if elm_find.left is not None:
  56. elm_find.data == x
  57. y = elm_find.left
  58. elm_find.left = y.right
  59. if self.root is not None:
  60. if self.root == elm_find:
  61. self.root = y
  62. else:
  63. self.root = y
  64. y.right = elm_find
  65. #break
  66.  
  67. while elm_find != None:
  68. if x > elm_find.data:
  69. elm_find = elm_find.right
  70. elif x < elm_find.data:
  71. elm_find = elm_find.left
  72. else:
  73. if elm_find.left is not None:
  74. y = elm_find.left
  75. elm_find.left = y.right
  76. if elm_find.parent is not None:
  77. if elm_find.parent.left == elm_find:
  78. elm_find.parent.left = y
  79. else:
  80. elm_find.parent.right = y
  81. y.parent = elm_find.parent
  82. elm_find.parent = y
  83. y.right = elm_find
  84. break
  85.  
  86.  
  87.  
  88. #return b
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97. def printlevel(self, root, level):
  98. if root == None:
  99. return
  100. self.printlevel(root.left, level+1)
  101. print ("\t" * level + str(root.data))
  102. self.printlevel(root.right, level+1)
  103.  
  104.  
  105.  
  106. def print_tree(self):
  107.  
  108. #i=0
  109. #while (i <= len(line))
  110. self.printlevel(self.root, 0)
  111.  
  112. #i+=1
  113.  
  114.  
  115.  
  116. b = BinaryTree()
  117. for i in line:
  118. b.add1(i)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement