二叉树遍历c++实现
作者:野牛程序员:2023-11-24 16:50:18 C++阅读 2865
前序遍历、中序遍历和后序遍历是二叉树的三种常用遍历方式。以下是这三种遍历方式的C++实现:
#include <iostream>
using namespace std;
// 二叉树节点的定义
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
// 前序遍历
void preorderTraversal(TreeNode* root) {
if (root != nullptr) {
cout << root->val << " "; // 访问当前节点
preorderTraversal(root->left); // 递归遍历左子树
preorderTraversal(root->right); // 递归遍历右子树
}
}
// 中序遍历
void inorderTraversal(TreeNode* root) {
if (root != nullptr) {
inorderTraversal(root->left); // 递归遍历左子树
cout << root->val << " "; // 访问当前节点
inorderTraversal(root->right); // 递归遍历右子树
}
}
// 后序遍历
void postorderTraversal(TreeNode* root) {
if (root != nullptr) {
postorderTraversal(root->left); // 递归遍历左子树
postorderTraversal(root->right); // 递归遍历右子树
cout << root->val << " "; // 访问当前节点
}
}
int main() {
// 创建一棵二叉树
TreeNode* root = new TreeNode(1);
root->left = new TreeNode(2);
root->right = new TreeNode(3);
root->left->left = new TreeNode(4);
root->left->right = new TreeNode(5);
// 输出各种遍历结果
cout << "Preorder Traversal: ";
preorderTraversal(root);
cout << endl;
cout << "Inorder Traversal: ";
inorderTraversal(root);
cout << endl;
cout << "Postorder Traversal: ";
postorderTraversal(root);
cout << endl;
return 0;
}这个C++程序定义了一个简单的二叉树结构(TreeNode),并实现了前序遍历、中序遍历和后序遍历的函数。在主函数中,创建了一棵二叉树并输出了这三种遍历方式的结果。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:C语言树状结构遍历
- 下一篇:python运行文件位于哪个文件夹中?
