输出二叉树的前序遍历结果
时间: 2023-12-06 12:48:02 浏览: 28
好的,对于一棵二叉树,前序遍历的遍历顺序是:先遍历根节点,再遍历左子树,最后遍历右子树。以下是输出二叉树前序遍历结果的示例代码(假设二叉树已经存在,且每个节点包含一个整数值和左、右子节点指针):
```
void preorder_traversal(node* root) {
if (root == nullptr) {
return;
}
cout << root->val << " "; // 输出根节点的值
preorder_traversal(root->left); // 遍历左子树
preorder_traversal(root->right); // 遍历右子树
}
```
您可以将每个节点的值存储在一个数组中,即为二叉树的前序遍历结果。
相关问题
二叉树 前序遍历 java
二叉树的前序遍历是一种树遍历算法,它按照根节点、左子树、右子树的顺序遍历二叉树的所有节点。下面是用Java语言实现二叉树前序遍历的代码示例:
```java
class TreeNode {
int val;
TreeNode left;
TreeNode right;
public TreeNode(int val) {
this.val = val;
}
}
public class BinaryTree {
// 前序遍历
public static void preorderTraversal(TreeNode root) {
if (root == null) {
return;
}
System.out.print(root.val + " "); // 先输出当前节点的值
preorderTraversal(root.left); // 递归遍历左子树
preorderTraversal(root.right); // 递归遍历右子树
}
public static void main(String[] args) {
// 构造二叉树
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);
System.out.println("前序遍历结果:");
preorderTraversal(root);
}
}
```
以上代码通过构造一个简单的二叉树,并调用前序遍历方法进行遍历,输出结果为:1 2 4 5 3。
二叉树前序遍历完整代码
以下是二叉树前序遍历的完整代码实现:
```
#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);
cout << endl;
return 0;
}
```
程序运行结果:
```
前序遍历结果为:1 2 4 5 3
```
其中 `TreeNode` 结构体定义了二叉树的结点,包含结点值 `val` 和左右子树指针 `left` 和 `right`。`preorderTraversal` 函数是前序遍历的实现,首先输出当前结点的值,然后递归遍历左子树和右子树。在 `main` 函数中,我们构造了一个简单的二叉树并对其进行前序遍历。