#include <iostream>
using namespace std;
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
// 插入节点函数
TreeNode* insert(TreeNode* root, int val) {
if (root == nullptr) {
return new TreeNode(val);
}
if (val < root->val) {
root->left = insert(root->left, val);
} else {
root->right = insert(root->right, val);
}
return root;
}
// 前序遍历函数
void preorderTraversal(TreeNode* root) {
if (root == nullptr) {
return;
}
cout << root->val << " "; // 输出当前节点的值
preorderTraversal(root->left); // 递归遍历左子树
preorderTraversal(root->right); // 递归遍历右子树
}
int main() {
TreeNode* root = nullptr;
root = insert(root, 5);
root = insert(root, 2);
root = insert(root, 7);
root = insert(root, 1);
root = insert(root, 3);
cout << "前序遍历结果:";
preorderTraversal(root);
return 0;
}
以上是使用C++实现的二叉树前序遍历函数的完整代码,包括结构体定义、节点插入函数以及前序遍历函数。
在这个实现中,首先定义了一个二叉树节点的结构体 TreeNode
,包含节点值 val
,以及左右子节点的指针 left
和 right
。然后定义了插入节点的函数 insert
,该函数接受一个指向二叉树根节点的指针 root
和一个要插入的值 val
,返回插入后的二叉树根节点。
最后,在 main
函数中调用 insert
函数向二叉树中插入若干节点,并调用 preorderTraversal
函数进行前序遍历,输出遍历结果。