二叉排序树的查找效率和二叉排序树的髙度有关。
时间: 2023-11-21 12:57:29 浏览: 246
二叉排序树的查找效率和二叉排序树的高度有关。二叉排序树的高度越小,查找效率越高。因为二叉排序树的查找是从根节点开始,逐层向下查找,如果树的高度很高,那么查找的次数就会很多,效率就会降低。而如果树的高度很小,那么查找的次数就会很少,效率就会很高。
下面是一个构造二叉排序树并进行查找的例子:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
class BST:
def __init__(self):
self.root = None
def insert(self, val):
if not self.root:
self.root = TreeNode(val)
return
node = self.root
while node:
if val < node.val:
if not node.left:
node.left = TreeNode(val)
return
node = node.left
else:
if not node.right:
node.right = TreeNode(val)
return
node = node.right
def search(self, val):
node = self.root
while node:
if val == node.val:
return True
elif val < node.val:
node = node.left
else:
node = node.right
return False
def inorder(self, node):
if not node:
return []
return self.inorder(node.left) + [node.val] + self.inorder(node.right)
# 构造二叉排序树
bst = BST()
bst.insert(5)
bst.insert(3)
bst.insert(7)
bst.insert(1)
bst.insert(9)
# 中序遍历输出
print(bst.inorder(bst.root)) # 输出:[1, 3, 5, 7, 9]
# 查找节点
print(bst.search(3)) # 输出:True
print(bst.search(6)) # 输出:False
```
阅读全文