二分搜索树python实现(遍历的递归和非递归实现)

class BST:
    class _Node:
        def __init__(self,e):
            self.e=e
            self.left=None
            self.right=None
    def __init__(self):
        self._root=None
        self._size=0
    def size(self):
        return self._size
    def is_empty(self):
        return self._size==0
    def add(self,e):
        self._root=self._add(self._root,e)
    def _add(self,node,e):
        if not node:
            node=self._Node(e)
            self._size+=1
            return node
        if node.e==e:
            return node
        elif node.e>e:
            node.left=self._add(node.left,e)
        else:
            node.right=self._add(node.right,e)
        return node
    def contains(self,e):
        return self._contains(self._root,e)
    def _contains(Self,node,e):
        if not node:
            return False
        if node.e==e:
            return True
        if node.e>e:
            self._contains(node.left,e)
        if node.ee:
            node.left=self._remove(node.left,e)
        elif node.e

 

你可能感兴趣的:(二叉搜索树,python)