python 二叉搜索树的使用
时间: 2023-07-24 15:20:40 浏览: 42
Python 中可以使用类来实现二叉搜索树。以下是一个简单的示例:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
class BST:
def __init__(self):
self.root = None
def insert(self, val):
if not self.root:
self.root = TreeNode(val)
else:
self._insert(val, self.root)
def _insert(self, val, node):
if val < node.val:
if not node.left:
node.left = TreeNode(val)
else:
self._insert(val, node.left)
else:
if not node.right:
node.right = TreeNode(val)
else:
self._insert(val, node.right)
def search(self, val):
return self._search(val, self.root)
def _search(self, val, node):
if not node:
return False
elif val == node.val:
return True
elif val < node.val:
return self._search(val, node.left)
else:
return self._search(val, node.right)
```
以上代码定义了一个 TreeNode 类来表示二叉搜索树中的节点,BST 类则是二叉搜索树本身。insert 方法用于插入新的节点,search 方法用于搜索给定值是否在树中。可以通过以下方式使用:
```python
bst = BST()
bst.insert(5)
bst.insert(3)
bst.insert(7)
bst.insert(1)
bst.insert(9)
print(bst.search(5)) # True
print(bst.search(6)) # False
```
此外,还可以实现删除节点、遍历等功能。