二叉搜索树Python语言程序
时间: 2024-06-17 09:01:51 浏览: 96
二叉搜索树程序
二叉搜索树(Binary Search Tree, BST)是一种常见的数据结构,它的每个节点包含一个键值和指向两个子节点的引用,左子节点的键小于父节点的键,右子节点的键大于父节点的键。在Python中,我们可以使用自定义类来实现二叉搜索树。
以下是一个简单的二叉搜索树的Python实现:
```python
class Node:
def __init__(self, key):
self.left = None
self.right = None
self.val = key
class BinarySearchTree:
def __init__(self):
self.root = None
def insert(self, key):
if not self.root:
self.root = Node(key)
else:
self._insert(key, self.root)
def _insert(self, key, current_node):
if key < current_node.val:
if current_node.left is None:
current_node.left = Node(key)
else:
self._insert(key, current_node.left)
elif key > current_node.val:
if current_node.right is None:
current_node.right = Node(key)
else:
self._insert(key, current_node.right)
else:
print("Key already exists in the tree.")
# 更多方法如查找、删除等,这里省略...
# 使用示例
bst = BinarySearchTree()
bst.insert(50)
bst.insert(30)
bst.insert(70)
```
在这个实现中,`Node`类代表树中的节点,包含左子节点、右子节点和键值。`BinarySearchTree`类包含了初始化树、插入节点的方法以及插入操作的具体实现 `_insert`,通过递归处理将新节点放入正确的位置。
相关问题--:
1. 在二叉搜索树中,插入一个新节点的主要步骤是什么?
2. 二叉搜索树有什么主要特点?
3. 如何在Python的BST中查找特定的键值?
阅读全文