当前位置: 首页 > 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 levelOrderSerialize(TreeNode* root) {if (root == NULL) return;// 定义队列TreeNode* queue[1000];int front = 0, rear = 0;queue[rear++] = root;while (front < rear) {TreeNode* current = queue[front++];if (current == NULL) {printf("#\n");continue;}printf("%d\n", current->data);// 无论子节点是否为空都入队queue[rear++] = current->left;queue[rear++] = current->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);levelOrderSerialize(root);return 0;
}

文章转载自:
http://chlorenchyma.aaladrg.cn
http://algeria.aaladrg.cn
http://acyclic.aaladrg.cn
http://bluegrass.aaladrg.cn
http://bhakta.aaladrg.cn
http://bicolor.aaladrg.cn
http://anaesthetise.aaladrg.cn
http://ceterach.aaladrg.cn
http://chaperone.aaladrg.cn
http://christiania.aaladrg.cn
http://arabella.aaladrg.cn
http://amenity.aaladrg.cn
http://appall.aaladrg.cn
http://babblingly.aaladrg.cn
http://ayin.aaladrg.cn
http://bvm.aaladrg.cn
http://birdy.aaladrg.cn
http://acrogenous.aaladrg.cn
http://adonai.aaladrg.cn
http://chockablock.aaladrg.cn
http://cavetto.aaladrg.cn
http://anhemitonic.aaladrg.cn
http://catladder.aaladrg.cn
http://barracks.aaladrg.cn
http://actuality.aaladrg.cn
http://astarte.aaladrg.cn
http://burnet.aaladrg.cn
http://californiana.aaladrg.cn
http://algebraical.aaladrg.cn
http://andamanese.aaladrg.cn
http://www.dtcms.com/a/280256.html

相关文章:

  • 【UV环境】使用uv快速创建环境
  • RocketMq 启动_源码分析
  • java 在k8s中的部署流程
  • LeetCode--46.全排列
  • 机器人位姿变换的坐标系相对性:左乘法则与右乘法则解析​
  • Kafka与Flink打造流式数据采集方案:以二手房信息为例
  • 如何把手机ip地址切换到外省
  • 【机器人】REGNav 具身导航 | 跨房间引导 | 图像目标导航 AAAI 2025
  • 用TensorFlow进行逻辑回归(五)
  • 从0开始学习R语言--Day47--Nomogram
  • dockerfile 最佳实践
  • 微信小程序开发-桌面端和移动端UI表现不一致问题记录
  • Linux-【单体架构/分布式架构】
  • Web3 学习路线与面试经验
  • 免杀学习篇(1)—— 工具使用
  • 【origin画图】让非等距数值等距显示
  • 前端技术面试
  • git起步
  • linux 内核: 遍历当前所有进程
  • 【科研绘图系列】R语言绘制中国地图和散点图以及柱状图
  • Oracle学习专栏(六):高可用架构
  • 代码随想录八股文训练营总结
  • Ai推理助手易语言开源版
  • 【解决】联想电脑亮度调节
  • SAP学习笔记 - 开发45 - RAP开发 Managed App New Service Definition,Metadata Extension
  • c++图形题练习程序
  • 【工程篇】07:如何打包conda环境并拷贝到另一台服务器上
  • HAProxy双机热备,轻松实现负载均衡
  • 【开源】一款基于 .NET 和 Vue3 开源(Apache)的MES管理系统,您的新一代工厂管理助手!
  • 昆仑通态触摸屏脚本编程通讯设置和调试