Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Python by (50.2k points)
I want to know the best data structure that can be used to execute a binary tree in Python?

1 Answer

0 votes
by (108k points)

Kindly use the below code that is nothing but a simple recursive implementation of the binary search tree.

#!/usr/bin/python

class Node:

    def __init__(self, val):

        self.l = None

        self.r = None

        self.v = val

class Tree:

    def __init__(self):

        self.root = None

    def getRoot(self):

        return self.root

    def add(self, val):

        if self.root is None:

            self.root = Node(val)

        else:

            self._add(val, self.root)

    def _add(self, val, node):

        if val < node.v:

            if node.l is not None:

                self._add(val, node.l)

            else:

                node.l = Node(val)

        else:

            if node.r is not None:

                self._add(val, node.r)

            else:

                node.r = Node(val)

    def find(self, val):

        if self.root is not None:

            return self._find(val, self.root)

        else:

            return None

    def _find(self, val, node):

        if val == node.v:

            return node

        elif (val < node.v and node.l is not None):

            self._find(val, node.l)

        elif (val > node.v and node.r is not None):

            self._find(val, node.r)

    def deleteTree(self):

        # garbage collector will do this for us. 

        self.root = None

    def printTree(self):

        if self.root is not None:

            self._printTree(self.root)

    def _printTree(self, node):

        if node is not None:

            self._printTree(node.l)

            print(str(node.v) + ' ')

            self._printTree(node.r)

#     3

# 0     4

#   2      8

tree = Tree()

tree.add(3)

tree.add(4)

tree.add(0)

tree.add(8)

tree.add(2)

tree.printTree()

print(tree.find(3).v)

print(tree.find(10))

tree.deleteTree()

tree.printTree()

If you want to learn python then do check out the below python tutorial video:

Related questions

0 votes
1 answer
asked Feb 9, 2021 in Python by ashely (50.2k points)
0 votes
1 answer
asked Jul 30, 2019 by Rajesh Malhotra (19.9k points)
0 votes
1 answer
0 votes
1 answer
asked Oct 15, 2019 in Python by Sammy (47.6k points)

Browse Categories

...