A binary tree is a tree data structure in which each node has at most two children, which are referred to as the lest child node and the right child node.
Code:
class node:
    def __init__(self,x):
        self.data = x
        self.llink = None
        self.rlink = None
    def get_llink(self):
        return self.llink
    def get_rlink(self):
        return self.rlink
    def set_llink(self,x):
        self.llink = x
    def set_rlink(self,x):
        self.rlink = x
    def get_data(self):
        return self.data
class binary_tree:
    def __init__(self):
        self.head = None
    def set_head(self, x):
        self.head = x
    def get_head(self):
        return self.head
    def delete_head(self):
        del self.head
        print("Tree has been deleted.")
    def set_node(self, x):
        value = int(input("Enter the value that you want to insert
                            (-99 for no child): "))
        if(value != -99):
            x = node(value)
            print(f"Enter the left child of {x.get_data()}")
            x.set_llink(self.set_node(x.get_llink()))
            print(f"Enter the right child  of {x.get_data()}")
            x.set_rlink(self.set_node(x.get_rlink()))
            return x
        return None
    def inorder(self, x):
        if(x != None):
            self.inorder(x.get_llink())
            print(x.get_data(), end=' ')
            self.inorder(x.get_rlink())
    def preorder(self, x):
        if(x != None):
            print(x.get_data(), end=' ')
            self.preorder(x.get_llink())
            self.preorder(x.get_rlink())
    def postorder(self,x):
        if(x != None):
            self.postorder(x.get_llink())
            self.postorder(x.get_rlink())
            print(x.get_data(), end=' ')
if __name__ == "__main__":
    obj1 = binary_tree()
    ptr = node(None)
    obj1.set_head(obj1.set_node(ptr))
    if(obj1.get_head != None):
        print("Inorder Traversal is: ")
        obj1.inorder(obj1.get_head())
        print("\nPreorder Traversal is: ")
        obj1.preorder(obj1.get_head())
        print("\nPostorder Traversal is: ")
        obj1.postorder(obj1.get_head())
        print("\n")
    else:
        print("Tree is Empty!")

Comments
Post a Comment
If you've any doubts, please let me text