当前位置: 首页 > news >正文

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

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

文章目录

    • 题目
    • 代码

题目

请编写程序,创建一棵有 3 个结点的二叉树,并输出其前序序列化结果。

输入格式:
输入给出 3 个整数,依次为二叉树根结点的左孩子、右孩子、根结点本身存储的键值。

输出格式:
输出二叉树的前序序列化结果,每个数字占一行,空结点对应符号 #。

输入样例:
1 2 3

输出样例:
3
1
#
#
2
#
#

代码

#include <stdio.h>
#include <stdlib.h>
#include <string.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;
}// 根据输入构建二叉树结构
TreeNode* createTree(int left_val, int right_val, int root_val) {TreeNode* root = createNode(root_val);root->left = createNode(left_val);  // 设置左子节点root->right = createNode(right_val); // 设置右子节点return root;
}// 前序遍历序列化函数(根-左-右)
void preOrderSerialize(TreeNode* node) {if (node == NULL) {printf("#\n");  // 空节点标记return;}printf("%d\n", node->data);  // 输出当前节点值preOrderSerialize(node->left);  // 递归处理左子树preOrderSerialize(node->right); // 递归处理右子树
}int main() {int left_val, right_val, root_val;scanf("%d %d %d", &left_val, &right_val, &root_val);// 构建二叉树:输入顺序为左子节点值、右子节点值、根节点值TreeNode* root = createTree(left_val, right_val, root_val);preOrderSerialize(root);  // 执行前序序列化并输出结果return 0;
}

文章转载自:
http://actinism.apjjykv.cn
http://blouson.apjjykv.cn
http://bushie.apjjykv.cn
http://beeswax.apjjykv.cn
http://calycular.apjjykv.cn
http://baptistry.apjjykv.cn
http://carmella.apjjykv.cn
http://benguela.apjjykv.cn
http://cadenced.apjjykv.cn
http://bursectomize.apjjykv.cn
http://cataplexy.apjjykv.cn
http://appreciably.apjjykv.cn
http://an.apjjykv.cn
http://cete.apjjykv.cn
http://autosexing.apjjykv.cn
http://catchlight.apjjykv.cn
http://bandbox.apjjykv.cn
http://bombinate.apjjykv.cn
http://bucolically.apjjykv.cn
http://caterwaul.apjjykv.cn
http://cellular.apjjykv.cn
http://carbonari.apjjykv.cn
http://autograft.apjjykv.cn
http://betrothed.apjjykv.cn
http://acidproof.apjjykv.cn
http://catch.apjjykv.cn
http://bieerhaus.apjjykv.cn
http://cardiogram.apjjykv.cn
http://besides.apjjykv.cn
http://atreus.apjjykv.cn
http://www.dtcms.com/a/281204.html

相关文章:

  • 差分信号接口选型指南:深入解析LVDS、SubLVDS、SLVDS与SLVDS-EC**
  • 《大数据技术原理与应用》实验报告五 熟悉 Hive 的基本操作
  • [AI8051U入门第三步]串口1使用-printf重定向(乱码解决办法)
  • Django+Celery 进阶:动态定时任务的添加、修改与智能调度实战
  • Android target34升级到35中的edge-to-edge适配
  • Nestjs框架: 数据库架构设计与 NestJS 多 ORM 动态数据库应用与连接池的配置
  • 利用android studio,对图片资源进行二次压缩
  • 基于Ruoyi和PostgreSQL的统一POI分类后台管理实战
  • 三步把餐饮回访差评变口碑
  • java+vue+SpringBoot在线租房和招聘平台(程序+数据库+报告+部署教程+答辩指导)
  • Ajax原理、用法与经典代码实例
  • TCP协议可靠性设计的核心机制与底层逻辑
  • 基于YOLOv8的水稻叶片病害检测系统的设计与实现【近6W条数据集+多病害特征+高准确率】
  • 修改系统配置后,如何编写 Python 脚本以适应 SSL 证书验证的变化
  • Axios 和 Promise 区别对比
  • C语言---自定义类型(下)(枚举和联合类型)
  • 利用DeepSeek为chdb命令行客户端添加输出重定向和执行SQL脚本功能
  • nlp论文:分本分类:《Bag of Tricks for Efficient Text Classification》
  • VirtualBox网络配置全指南:桥接、Host-Only与双网卡实战
  • 2025华为ODB卷-士兵过河-三语言题解
  • 限制apk使用时长第二篇-限制/拦截Apk启动-应用锁功能
  • 创客匠人:创始人 IP 变现,从 “单点尝试” 到 “生态赋能” 的跨越
  • S7-200 SMART PLC:不同CPU及数字量 IO 接线全解析
  • ESLint 配置错误:ReferenceError: prettier is not defined 解决方案
  • 运维技术教程之Jenkins上的known_hosts文件
  • 高频高密度趋势下磁芯材料评价指标探讨
  • UVM(1)—配置环境
  • 算法学习day16----Python数据结构--模拟队列
  • 传统三层网络架构和现代数据中心网络架构(如思科 ACI 的 Spine-Leaf 架构)的对比和分析(Grok3 回答)
  • Mac电脑上无需卸载即可切换使用多个EasyConnect客户端的解决方案