PYTHON: Please fix my code to print the correct traversals, especially at the def functions, because I could not print the correct results of the inorder, postorder, and preorder traversals from the user input. #POSTORDER class Node: def __init__(self, data): self.left = None self.right = None self.data = data # Insert Node def insert(self, data): if self.data: if data < self.data: if self.left is None: self.left = Node(data) else: self.left.insert(data) elif data > self.data: if self.right is None: self.right = Node(data) else: self.right.insert(data) else: self.data = data # Print the Tree def PrintTree(self): if self.left: self.left.PrintTree() print(self.data), if self.right: self.right.PrintTree() # Postorder traversal # Left ->Right -> Root def PostorderTraversal(self, root): res = [] if root: res = self.PostorderTraversal(root.left) res = res + self.PostorderTraversal(root.right) res.append(root.data) return res in_order = input("Please enter INORDER traversal: ") pre_order = input("Please enter PREORDER traversal: ") root = Node(in_order[0]) for i in range(1, len(in_order)): root.insert(in_order[i]) print(root.PostorderTraversal(root)) #PREORDER class Node: def __init__(self, data): self.left = None self.right = None self.data = data # Insert Node def insert(self, data): if self.data: if data < self.data: if self.left is None: self.left = Node(data) else: self.left.insert(data) elif data > self.data: if self.right is None: self.right = Node(data) else: self.right.insert(data) else: self.data = data # Print the Tree def PrintTree(self): if self.left: self.left.PrintTree() print(self.data), if self.right: self.right.PrintTree() # Preorder traversal # Root -> Left ->Right def PreorderTraversal(self, root): res = [] if root: res.append(root.data) res = res + self.PreorderTraversal(root.left) res = res + self.PreorderTraversal(root.right) return res in_order = input("Please enter INORDER traversal: ") pre_order = input("Please enter POSTORDER traversal: ") root = Node(pre_order[0]) for i in range(1, len(pre_order)): root.insert(pre_order[i]) print(root.PreorderTraversal(root))
PYTHON:
Please fix my code to print the correct traversals, especially at the def functions, because I could not print the correct results of the inorder, postorder, and preorder traversals from the user input.
#POSTORDER
class Node:
def __init__(self, data):
self.left = None
self.right = None
self.data = data
# Insert Node
def insert(self, data):
if self.data:
if data < self.data:
if self.left is None:
self.left = Node(data)
else:
self.left.insert(data)
elif data > self.data:
if self.right is None:
self.right = Node(data)
else:
self.right.insert(data)
else:
self.data = data
# Print the Tree
def PrintTree(self):
if self.left:
self.left.PrintTree()
print(self.data),
if self.right:
self.right.PrintTree()
# Postorder traversal
# Left ->Right -> Root
def PostorderTraversal(self, root):
res = []
if root:
res = self.PostorderTraversal(root.left)
res = res + self.PostorderTraversal(root.right)
res.append(root.data)
return res
in_order = input("Please enter INORDER traversal: ")
pre_order = input("Please enter PREORDER traversal: ")
root = Node(in_order[0])
for i in range(1, len(in_order)):
root.insert(in_order[i])
print(root.PostorderTraversal(root))
#PREORDER
class Node:
def __init__(self, data):
self.left = None
self.right = None
self.data = data
# Insert Node
def insert(self, data):
if self.data:
if data < self.data:
if self.left is None:
self.left = Node(data)
else:
self.left.insert(data)
elif data > self.data:
if self.right is None:
self.right = Node(data)
else:
self.right.insert(data)
else:
self.data = data
# Print the Tree
def PrintTree(self):
if self.left:
self.left.PrintTree()
print(self.data),
if self.right:
self.right.PrintTree()
# Preorder traversal
# Root -> Left ->Right
def PreorderTraversal(self, root):
res = []
if root:
res.append(root.data)
res = res + self.PreorderTraversal(root.left)
res = res + self.PreorderTraversal(root.right)
return res
in_order = input("Please enter INORDER traversal: ")
pre_order = input("Please enter POSTORDER traversal: ")
root = Node(pre_order[0])
for i in range(1, len(pre_order)):
root.insert(pre_order[i])
print(root.PreorderTraversal(root))
Step by step
Solved in 2 steps with 3 images