How to implement a binary search tree in Python?

前端 未结 18 2191
眼角桃花
眼角桃花 2020-11-30 22:25

This is what I\'ve got so far but it is not working:

class Node:
    rChild,lChild,data = None,None,None

    def __init__(self,key):
        self.rChild = N         


        
18条回答
  •  臣服心动
    2020-11-30 23:11

    Here is a working solution.

    class BST:
        def __init__(self,data):
            self.root = data
            self.left = None
            self.right = None
    
        def insert(self,data):
            if self.root == None:
                self.root = BST(data)
            elif data > self.root:
                if self.right == None:
                    self.right = BST(data)
                else:
                    self.right.insert(data)
            elif data < self.root:
                if self.left == None:
                    self.left = BST(data)
                else:
                    self.left.insert(data)
    
        def inordertraversal(self):
            if self.left != None:
                self.left.inordertraversal()
            print (self.root),
            if self.right != None:
                self.right.inordertraversal()
    
    t = BST(4)
    t.insert(1)
    t.insert(7)
    t.insert(3)
    t.insert(6)
    t.insert(2)
    t.insert(5)
    t.inordertraversal()
    

提交回复
热议问题