用c++,实现二叉树的前序遍历的递归算法
时间: 2023-12-01 08:52:12 浏览: 83
数据结构二叉树实验(C++).docx
5星 · 资源好评率100%
以下是 c++ 实现二叉树前序遍历的递归算法:
```cpp
#include <iostream>
using namespace std;
// 二叉树的节点定义
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
// 前序遍历的递归函数
void preorderTraversal(TreeNode* root) {
if (root == NULL) return;
cout << root->val << " "; // 访问根节点
preorderTraversal(root->left); // 访问左子树
preorderTraversal(root->right); // 访问右子树
}
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 << "前序遍历结果:";
preorderTraversal(root);
return 0;
}
```
输出结果为:
```
前序遍历结果:1 2 4 5 3
```
其中,`preorderTraversal` 函数为前序遍历的递归函数,它的参数为二叉树的根节点指针,如果根节点为空,则直接返回。否则,先访问根节点,然后递归地访问左子树和右子树。在主函数中,我们构造了一棵二叉树,并对其进行了前序遍历,输出了遍历结果。
阅读全文