python二叉查找树
时间: 2023-07-06 20:36:28 浏览: 86
二叉查找树python二叉查找树源码
二叉查找树(Binary Search Tree,BST)是一种基于二叉树的数据结构,它的每个节点最多有两个子节点,并且每个节点的值都大于其左子树中任意一个节点的值,小于其右子树中任意一个节点的值。这个特性使得二叉查找树非常适合用于查找和排序。
下面是一个简单的 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 not self.root:
self.root = TreeNode(value)
else:
self._insert(value, self.root)
def _insert(self, value, node):
if value < node.value:
if not node.left:
node.left = TreeNode(value)
else:
self._insert(value, node.left)
else:
if not node.right:
node.right = TreeNode(value)
else:
self._insert(value, node.right)
def search(self, value):
return self._search(value, self.root)
def _search(self, value, node):
if not node:
return False
if node.value == value:
return True
elif value < node.value:
return self._search(value, node.left)
else:
return self._search(value, node.right)
```
这个二叉查找树实现了插入和查找操作。插入操作会按照 BST 的规则插入一个新节点,查找操作会在 BST 中查找指定的值。
当然,这只是一个简单的实现。实际上,二叉查找树还有很多其他的操作,比如删除、遍历等等。如果你想深入了解二叉查找树,可以继续学习。
阅读全文