【PTA数据结构 | C语言版】前序遍历二叉树

本专栏持续输出数据结构题目集,欢迎订阅。

文章目录

题目

请编写程序,创建一棵有 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;
}
相关推荐
TechPioneer_lp3 分钟前
腾讯测试开发岗位 LeetCode 高频题汇总(2026版)
数据结构·算法·大厂笔试·leetcode高频题·腾讯测试开发·大厂校招·大厂春招
551只玄猫6 分钟前
【操作系统原理 实验报告6】磁盘调度算法
算法·操作系统·os·实验报告·操作系统原理·磁盘调度算法·磁盘调度
2301_793804699 分钟前
C++中的访问者模式变体
开发语言·c++·算法
2501_9454248013 分钟前
模板代码版本兼容
开发语言·c++·算法
沉鱼.4415 分钟前
最小生成树
算法
m0_5180194816 分钟前
C++中的委托构造函数
开发语言·c++·算法
m0_7434703718 分钟前
高性能计算框架实现
开发语言·c++·算法
前端的阶梯19 分钟前
深入浅出的聊下AI Agent
算法·架构
jianqiang.xue20 分钟前
嵌入式软件架构设计:从分层思想到状态机实现,打造高可维护、高可移植的工程级代码
c语言·驱动开发·stm32·单片机·mcu·物联网·iot
Tony沈哲21 分钟前
AI 正在进入本地时代,我开源了一个推理平台—— 支持多模型 / Agent / Workflow 的工程实现
人工智能·算法·llm