二叉搜索树python实现
时间: 2023-08-05 15:08:22 浏览: 115
Python实现二叉搜索树
5星 · 资源好评率100%
二叉搜索树(Binary Search Tree,BST)是一种常见的数据结构,它具有以下特点:
1. 每个节点最多有两个子节点:左子节点和右子节点。
2. 左子节点的值小于父节点的值,右子节点的值大于父节点的值。
3. 对于任意节点,其左子树和右子树也分别是二叉搜索树。
下面是一个简单的二叉搜索树的Python实现:
```python
class TreeNode:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
class BinarySearchTree:
def __init__(self):
self.root = None
def insert(self, value):
if self.root is None:
self.root = TreeNode(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 = TreeNode(value)
else:
self._insert_recursive(node.left, value)
else:
if node.right is None:
node.right = TreeNode(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)
```
你可以使用上述代码创建一个二叉搜索树对象,并通过 `insert` 方法插入新的节点,通过 `search` 方法查找指定值的节点。这只是一个简单的实现,你可以根据需要扩展其功能。
阅读全文