返回
通俗易懂的二叉搜索树遍历
见解分享
2023-12-11 05:07:19
二叉搜索树,简称BST(Binary Search Tree),是一种维护二叉查找树性质的二叉树。二叉搜索树的每一个节点都拥有一个键值,且该键值大于其左子节点的键值,而小于其右子节点的键值。
二叉搜索树的遍历方法主要分为三种:前序遍历、中序遍历和后序遍历。这三种遍历方法都是按照一定的顺序访问二叉搜索树中的节点,不过顺序却有所不同。
前序遍历
前序遍历的顺序是:根、左子树、右子树。前序遍历的算法实现如下:
def preorder_traversal(root):
# 访问根节点
print(root.key)
# 递归访问左子树
if root.left is not None:
preorder_traversal(root.left)
# 递归访问右子树
if root.right is not None:
preorder_traversal(root.right)
中序遍历
中序遍历的顺序是:左子树、根、右子树。中序遍历的算法实现如下:
def inorder_traversal(root):
# 递归访问左子树
if root.left is not None:
inorder_traversal(root.left)
# 访问根节点
print(root.key)
# 递归访问右子树
if root.right is not None:
inorder_traversal(root.right)
后序遍历
后序遍历的顺序是:左子树、右子树、根。后序遍历的算法实现如下:
def postorder_traversal(root):
# 递归访问左子树
if root.left is not None:
postorder_traversal(root.left)
# 递归访问右子树
if root.right is not None:
postorder_traversal(root.right)
# 访问根节点
print(root.key)
遍历示例
下面以一个示例来说明这三种遍历方法的执行顺序。假设我们有一个二叉搜索树,其结构如下:
5
/ \
3 8
/ \ / \
2 4 7 9
前序遍历的结果是: 5、3、2、4、8、7、9
中序遍历的结果是: 2、3、4、5、7、8、9
后序遍历的结果是: 2、4、3、7、9、8、5
总结
前序遍历、中序遍历和后序遍历是二叉搜索树最常用的三种遍历方法。这三种遍历方法各有其特点,并且在不同的应用场景下都有着广泛的应用。