用C++建立一棵二叉树,并用递归算法用前序遍历之。 前序遍历二叉树的操作定义为: 若二叉树为空,则空操作;否则 (1)访问根结点; (2)前序遍历左子树; (3)前序遍历右子树。
时间: 2024-11-03 20:17:28 浏览: 98
二叉树前序遍历的非递归算法
在C++中,我们可以使用结构体或类表示二叉树节点,并利用递归来实现前序遍历。这里是一个简单的二叉树节点定义以及前序遍历函数的例子:
```cpp
// 定义二叉树节点
struct TreeNode {
int val; // 节点值
TreeNode* left; // 左子节点指针
TreeNode* right; // 右子节点指针
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} // 构造函数
};
// 前序遍历(递归)
void preOrderTraversal(TreeNode* root) {
if (root == nullptr) { // 如果当前节点为空,返回
return;
}
cout << root->val << " "; // 访问根节点
preOrderTraversal(root->left); // 递归遍历左子树
preOrderTraversal(root->right); // 递归遍历右子树
}
```
这个`preOrderTraversal`函数首先检查给定的根节点是否为空,如果为空则直接返回。然后它会打印出当前节点的值,接着对左子树和右子树分别进行前序遍历。
阅读全文