AVL Tree Without Comments
AVL Tree Without Comments
self.key = key
self.left = None
self.right = None
self.height = 1
class AVLTree:
def __init__(self):
self.root = None
if not node:
return AVLNode(key)
else:
return node
balance = self._get_balance(node)
node.left = self._rotate_left(node.left)
return self._rotate_right(node)
return self._rotate_left(node)
node.right = self._rotate_right(node.right)
return self._rotate_left(node)
return node
if not node:
return node
else:
if not node.left:
return node.right
if not node.right:
return node.left
temp = self._get_min_value_node(node.right)
node.key = temp.key
if not node:
return node
balance = self._get_balance(node)
return self._rotate_right(node)
node.left = self._rotate_left(node.left)
return self._rotate_right(node)
return self._rotate_left(node)
node.right = self._rotate_right(node.right)
return self._rotate_left(node)
return node
def _rotate_left(self, z):
y = z.right
T2 = y.left
y.left = z
z.right = T2
return y
y = z.left
T3 = y.right
y.right = z
z.left = T3
return y
if not node:
return 0
return node.height
if not node:
return 0
return node
return self._get_min_value_node(node.left)
if node:
self.in_order_traversal(node.left, result)
result.append(node.key)
self.in_order_traversal(node.right, result)
def read_elements_from_file(filename):
try:
content = file.read().strip()
elements = content.split()
except FileNotFoundError:
return []
except ValueError as e:
return []
input_filename = 'input.txt'
output_filename = 'output.txt'
elements = read_elements_from_file(input_filename)
if not elements:
return
avl_tree = AVLTree()
avl_tree.insert(element)
avl_tree.insert(15)
avl_tree.delete(20)
result = []
avl_tree.in_order_traversal(avl_tree.root, result)
write_elements_to_file(output_filename, result)
if __name__ == '__main__':
main()
output = file.read()
Output content: 5 10 15 25 30 40 50