生成二叉搜索树代码python
时间: 2024-11-23 22:21:14 浏览: 7
在Python中,我们可以创建一个简单的二叉搜索树(Binary Search Tree,BST)的数据结构,并提供插入、查找和删除等基本操作。这里是一个基础的实现:
```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(self.root, key)
def _insert(self, current_node, key):
if key < current_node.val:
if current_node.left is None:
current_node.left = Node(key)
else:
self._insert(current_node.left, key)
elif key > current_node.val:
if current_node.right is None:
current_node.right = Node(key)
else:
self._insert(current_node.right, key)
# 示例查找方法,可根据需要添加更多查找策略
def search(self, key):
return self._search(self.root, key)
def _search(self, current_node, key):
if current_node is None or current_node.val == key:
return current_node
elif key < current_node.val:
return self._search(current_node.left, key)
else:
return self._search(current_node.right, key)
# 使用示例
bst = BinarySearchTree()
bst.insert(50)
bst.insert(30)
bst.insert(20)
bst.insert(40)
bst.insert(70)
bst.insert(60)
print(bst.search(40)) # 输出:Node(val=40, left=None, right=None)
```
这个实现包括了一个`Node`类用于存储节点信息,以及`BinarySearchTree`类,其中包含了插入和查找操作。
阅读全文