数据结构二叉排序树
时间: 2024-02-05 08:08:38 浏览: 109
二叉排序树,也称为二叉搜索树(Binary Search Tree,简称BST),是一种特殊的二叉树结构,它具有以下性质:
1. 对于二叉排序树的任意一个非叶子节点,其左子树的所有节点的值都小于该节点的值,右子树的所有节点的值都大于该节点的值。
2. 对于二叉排序树的任意一个节点,其左子树和右子树都是二叉排序树。
下面是一个示例代码,演示了如何构建一个二叉排序树,并进行插入和查找操作:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def insert(root, val):
if root is None:
return TreeNode(val)
if val < root.val:
root.left = insert(root.left, val)
else:
root.right = insert(root.right, val)
return root
def search(root, val):
if root is None or root.val == val:
return root
if val < root.val:
return search(root.left, val)
else:
return search(root.right, val)
# 构建二叉排序树
root = None
values = [5, 3, 8, 2, 4, 7, 9]
for val in values:
root = insert(root, val)
# 查找节点
target = 4
result = search(root, target)
if result:
print("找到了节点", target)
else:
print("未找到节点", target)
```
这段代码首先定义了一个`TreeNode`类,表示二叉排序树的节点。然后定义了`insert`函数,用于向二叉排序树中插入节点。最后定义了`search`函数,用于在二叉排序树中查找指定的节点。通过构建二叉排序树并进行查找操作,可以实现对数据的快速插入和查找。
阅读全文