bst python
时间: 2023-10-12 17:06:24 浏览: 155
BST(Binary Search Tree)是一种常见的搜索数据结构,它具有以下特点:
- 每个节点最多有两个子节点:左子节点和右子节点。
- 左子节点的值小于等于父节点的值,右子节点的值大于父节点的值。
- 对于每个节点,其左子树和右子树都是二叉搜索树。
以下是一个用Python实现的BST示例:
```python
class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
class BST:
def __init__(self):
self.root = None
def insert(self, value):
if self.root is None:
self.root = Node(value)
else:
self._insert_recursive(self.root, value)
def _insert_recursive(self, node, value):
if value < node.value:
if node.left is None:
node.left = Node(value)
else:
self._insert_recursive(node.left, value)
else:
if node.right is None:
node.right = Node(value)
else:
self._insert_recursive(node.right, value)
def search(self, value):
return self._search_recursive(self.root, value)
def _search_recursive(self, node, value):
if node is None or node.value == value:
return node
elif value < node.value:
return self._search_recursive(node.left, value)
else:
return self._search_recursive(node.right, value)
```
你可以使用该BST类来创建一个二叉搜索树,并进行插入和搜索操作。例如:
```python
bst = BST()
bst.insert(5)
bst.insert(3)
bst.insert(7)
bst.insert(1)
bst.insert(4)
print(bst.search(3)) # 输出: <__main__.Node object at 0x...>
```
希望以上代码能帮到你!如果有任何疑问,请随时问我。
阅读全文