Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

TUGAS

PRAKTIKUM ALGORITMA & STRUKTUR DATA


MENGUBAH CODE KE DALAM BAHASA PYTHON

Disusun oleh:
Alvarizqky putra K.R (2206109)

TEKNIK INFORMATIKA
INSTITUT TEKNOLOGI GARUT
2022
1. CODE PROGRAM
class Tree:
def __init__(self, info):
self.info = info
self.left = None
self.right = None

class BinaryTree:
def __init__(self):
self.root = None

def insert(self, info):


if self.root is None:
self.root = Tree(info)
else:
self._insert(self.root, info)

def _insert(self, node, info):


if info < node.info:
if node.left is None:
node.left = Tree(info)
else:
self._insert(node.left, info)
else:
if node.right is None:
node.right = Tree(info)
else:
self._insert(node.right, info)

def delete(self, key):

2
self.root = self._delete(self.root, key)

def _delete(self, node, key):


if node is None:
return node

if key < node.info:


node.left = self._delete(node.left, key)
elif key > node.info:
node.right = self._delete(node.right, key)
else:
if node.left is None:
return node.right
elif node.right is None:
return node.left

temp = self._find_min(node.right)
node.info = temp.info
node.right = self._delete(node.right, temp.info)

return node

def _find_min(self, node):


current = node
while current.left is not None:
current = current.left
return current

def preorder_traversal(self):
self._preorder_traversal(self.root)

3
def _preorder_traversal(self, node):
if node is not None:
print(node.info, end=" ")
self._preorder_traversal(node.left)
self._preorder_traversal(node.right)

def inorder_traversal(self):
self._inorder_traversal(self.root)

def _inorder_traversal(self, node):


if node is not None:
self._inorder_traversal(node.left)
print(node.info, end=" ")
self._inorder_traversal(node.right)

def postorder_traversal(self):
self._postorder_traversal(self.root)

def _postorder_traversal(self, node):


if node is not None:
self._postorder_traversal(node.left)
self._postorder_traversal(node.right)
print(node.info, end=" ")

if __name__ == '__main__':
bt = BinaryTree()

while True:
print("1. Insert")
print("2. Delete")

4
print("3. Preorder Traversal")
print("4. Inorder Traversal")
print("5. Postorder Traversal")
print("6. Exit")

choice = int(input("Enter your choice: "))

if choice == 1:
n = int(input("Enter item: "))
bt.insert(n)
elif choice == 2:
key = int(input("Enter element to delete: "))
bt.delete(key)
elif choice == 3:
print()
bt.preorder_traversal()
print()
elif choice == 4:
print()
bt.inorder_traversal()
print()
elif choice == 5:
print()
bt.postorder_traversal()
print()
elif choice == 6:
break

5
2. CONSOLE

You might also like