单词检查(Ⅱ)- 二叉排序树实现代码
时间: 2024-03-15 08:46:25 浏览: 11
好的,以下是二叉排序树的实现代码:
```python
class Node:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
class BinarySearchTree:
def __init__(self):
self.root = None
def insert(self, val):
if not self.root:
self.root = Node(val)
else:
self._insert(val, self.root)
def _insert(self, val, node):
if val < node.val:
if node.left:
self._insert(val, node.left)
else:
node.left = Node(val)
else:
if node.right:
self._insert(val, node.right)
else:
node.right = Node(val)
def search(self, val):
if not self.root:
return False
else:
return self._search(val, self.root)
def _search(self, val, node):
if val == node.val:
return True
elif val < node.val and node.left:
return self._search(val, node.left)
elif val > node.val and node.right:
return self._search(val, node.right)
return False
```
这个代码实现了二叉排序树的插入和搜索功能。插入时,如果树为空,则将插入的值作为根节点;否则,递归地将值插入到左子树或右子树中。搜索时,如果树为空,则返回False;否则,递归地在左子树或右子树中搜索该值。