本专栏持续输出数据结构题目集,欢迎订阅。
文章目录
题目
请编写程序,创建一棵有 3 个结点的二叉树,并输出其前序遍历序列。
输入格式:
输入给出 3 个整数,依次为二叉树根结点的左孩子、右孩子、根结点本身存储的键值。
输出格式:
输出二叉树的前序遍历序列,每个数字占一行。
输入样例:
1 2 3
输出样例:
3
1
2
代码
cpp
#include <stdio.h>
#include <stdlib.h>
typedef struct TreeNode {
int data;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
TreeNode* createNode(int data) {
TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode));
node->data = data;
node->left = NULL;
node->right = NULL;
return node;
}
// 前序遍历函数:根->左->右
void preOrderTraversal(TreeNode* root) {
if (root == NULL) return;
printf("%d\n", root->data); // 访问根节点
preOrderTraversal(root->left); // 递归遍历左子树
preOrderTraversal(root->right); // 递归遍历右子树
}
int main() {
int leftData, rightData, rootData;
scanf("%d %d %d", &leftData, &rightData, &rootData);
// 创建三个节点
TreeNode* root = createNode(rootData);
TreeNode* leftChild = createNode(leftData);
TreeNode* rightChild = createNode(rightData);
// 构建树结构
root->left = leftChild;
root->right = rightChild;
// 执行前序遍历
preOrderTraversal(root);
return 0;
}