【发布时间】:2021-06-11 01:01:52
【问题描述】:
我正在研究二叉搜索树的计数方法,但不知道如何实现它。
class BinarySearchTree:
def __init__(self, root: Optional[Any]) -> None:
if root is None:
self._root = None
self._left = None
self._right = None
else:
self._root = root
self._left = BinarySearchTree(None)
self._right = BinarySearchTree(None)
def is_empty(self) -> bool:
return self._root is None
def __contains__(self, item: Any) -> bool:
if self.is_empty():
return False
elif item == self._root:
return True
elif item < self._root:
return item in self._left
else:
return item in self._right
def count(self, item: Any) -> int: # not sure how to finish implementing this
if self.is_empty():
return 0
count = 0
elif item == self._root: # python says this is an illegal target for variable annotation
count += 1
到目前为止,如果树为空,此方法将返回 0。如果根为 树就是我要找的项目。
但它不会让我将项目与根进行比较。还有,我 需要检查其余的分支(左,右),看看是否有更多的出现 物品。我可以就如何执行此操作获得一些帮助吗?
【问题讨论】:
标签: search count tree binary binary-search-tree