二叉树遍历算法:先序、中序、后序遍历实现及代码示例
二叉树遍历算法:先序、中序、后序遍历实现及代码示例
二叉树遍历是指按照一定的规则访问树中的所有节点。常见的遍历方式包括先序遍历、中序遍历和后序遍历。
1. 先序遍历算法
先序遍历的访问顺序为:根节点 -> 左子树 -> 右子树。
(1) 如果二叉树为空,则返回。 (2) 访问根节点。 (3) 递归遍历左子树。 (4) 递归遍历右子树。
代码实现:
void preOrderTraversal(BiTree tree) {
if (tree) {
printf('%c ', tree->data);
preOrderTraversal(tree->left);
preOrderTraversal(tree->right);
}
}
2. 中序遍历算法
中序遍历的访问顺序为:左子树 -> 根节点 -> 右子树。
(1) 如果二叉树为空,则返回。 (2) 递归遍历左子树。 (3) 访问根节点。 (4) 递归遍历右子树。
代码实现:
void inOrderTraversal(BiTree tree) {
if (tree) {
inOrderTraversal(tree->left);
printf('%c ', tree->data);
inOrderTraversal(tree->right);
}
}
3. 后序遍历算法
后序遍历的访问顺序为:左子树 -> 右子树 -> 根节点。
(1) 如果二叉树为空,则返回。 (2) 递归遍历左子树。 (3) 递归遍历右子树。 (4) 访问根节点。
代码实现:
void postOrderTraversal(BiTree tree) {
if (tree) {
postOrderTraversal(tree->left);
postOrderTraversal(tree->right);
printf('%c ', tree->data);
}
}
以上代码示例使用 C 语言实现,但原理可以应用于其他编程语言。了解二叉树遍历算法对于理解和应用二叉树数据结构至关重要,希望本文能帮助您更好地理解二叉树遍历。
原文地址: https://www.cveoy.top/t/topic/nvcg 著作权归作者所有。请勿转载和采集!