Question

in python11.1 Binary Search Tree In this assignment, you will implement a Binary Search Tree You will also need to implement a Node cl

0 0
Add a comment Improve this question Transcribed image text
Answer #1

Program Code to Copy

class Node:

   

    def __init__(self):

        self.left = None

        self.right = None

        self.data = None

    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

    def stringMethod(self, root) :

        res = ""

        if root.data is None:

            res = "Empty Tree"

            return res

        else :

            res1 = "\nPreorder: " + str(self.preorderTraversal(root)) + "\n"

            res2 = "Inorder: " + str(self.inorderTraversal(root)) + "\n"

            res3 = "Postorder: " + str(self.postorderTraversal(root)) + "\n"

            res = res1 + res2 + res3

            return res

    def find(self, node, x):

        if (node == None):

            return False

        if (node.data == x):

            return True

        """ then recur on left subtree """

        res1 = self.find(node.left, x)

        """ now recur on right subtree """

        res2 = self.find(node.right, x)

        return res1 or res2

#***************Helper Methods****************************

    # 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 is not None:

                res = res + str(root.data) + " "

                res = res + self.preorderTraversal(root.left)

                res = res + self.preorderTraversal(root.right)

            else:

                res = res + 'N' + " "

            return res

   # Inorder traversal

   # Left -> Root -> Right

    def inorderTraversal(self, root):

        res = ""

        if root:

            res = res + self.inorderTraversal(root.left)

            res = res + str(root.data) + " "

            res = res + self.inorderTraversal(root.right)

        else :

            res = res + 'N' + " "

        return res

    # Postorder traversal

    # Root -> Left -> Right

    def postorderTraversal(self, root):

        res = ""

        if root:

            res = res + self.postorderTraversal(root.left)

            res = res + self.postorderTraversal(root.right)

            res = res + str(root.data) + " "

        else:

            res = res + 'N' + " "

        return res

print("Test Bed for Binary Search Tree Class")

test = input("Enter test Number (1-6):\n")

root = Node(None)

data = [6, 8, 4, 3, 7, 5, 9]

print("Make a Balanced Tree.")

print("Inserting: ", end = " ")

print(data)

for i in range (0, len(data)):

    root.insert(data[i])

print(root.stringMethod(root))

print(root.find(root,5))

Program Screenshots

main.py 1~ class Node: 2 def _init_(self): 3 4 self.left = None self.right = None self.data = None 7 def _init_(self, data):

def stringMethod(self, root) : 31 32 res if root.data is None: res = Empty Tree return res 33 34 35 else: 36 +str(self.preo**** He Lper Methods****** ****** 60 61 # Print the Tree 62 def Print Tree(self): if self.left: self.left.PrintTree () print(main.py 85 # Left -> Root -> Right def inorderTraversal(self, root): 86 87 res o if root: 88 res +self.inorderTraversal(root.

Program Output

Empty Tree with "find" method returning False.

120 121 print(Test Bed for Binary Search Tree Class) 122 test 123 root input(Enter test Number (1-6) :\n) Node(None) 124

Tree with data

120 121 print(Test Bed for Binary Search Tree Class) 122 test = input(Enter test Number (1-6) : \n) 123 Node(None) 124 ro

Add a comment
Know the answer?
Add Answer to:
in python 11.1 Binary Search Tree In this assignment, you will implement a Binary Search Tree...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
Active Questions
ADVERTISEMENT