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))

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

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))

Expert Solution
steps

Step by step

Solved in 2 steps with 3 images

Blurred answer
Knowledge Booster
Structure
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education