【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;
}
相关推荐
2601_9618451515 小时前
2026四级作文预测题|英语四级写作押题+提纲PDF
java·c语言·数据库·c++·python·pdf·php
暖阳华笺15 小时前
【高频考点】K-Means聚类算法
c++·算法·机器学习·kmeans·聚类
下午写HelloWorld15 小时前
后量子密码算法:协同签名研究综述
算法·密码学·后量子·协同签名
小蒋学算法15 小时前
算法-计算右侧小于当前元素的个数-分治&归并思想
java·数据结构·算法
lqqjuly15 小时前
FlashAttention 深度解析
人工智能·深度学习·算法
满怀冰雪15 小时前
第05篇-滑动窗口算法-一套模板解决子串与子数组问题
java·算法
叫我:松哥15 小时前
基于LSTM与ARIMA的城市空气质量分析与预测系统
人工智能·python·rnn·算法·机器学习·flask·lstm
j7~15 小时前
【C++】模板初阶--函数模板,类模板详解
数据结构·c++·算法·函数模板·类模板·函数模板实例化
十月的皮皮15 小时前
C语言学习笔记20260609-字符串反转两种实现方法
c语言·笔记·学习
IT策士15 小时前
Redis 从入门到精通:数据结构Hash 与 List
数据结构·redis·哈希算法