每日一题 KY11 二叉树遍历

编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。

输入描述:
输入包括1行字符串,长度不超过100。
输出描述:
可能有多组测试数据,对于每组数据, 输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。 每个输出结果占一行。

示例1

输入

abc##de#g##f###

输出

c b e g d f a 

#include <iostream>
#include <string>
using namespace std;struct TreeNode{char data;TreeNode * leftChild;TreeNode * rightChild;
};//结点
//难点
TreeNode * RebuildTree(int &i,string str){//i为当前读取的位置char c=str[i];++i;if(c=='#'){//这棵树是空的return NULL;} else{TreeNode *pNewNode=new TreeNode;//非空,构建二叉树结点pNewNode->data=c;pNewNode->leftChild= RebuildTree(i,str);//左子树pNewNode->rightChild=RebuildTree(i,str);return pNewNode;}
}
//中序遍历
void inOrder(TreeNode *root){if(root==NULL){return;}inOrder(root->leftChild);printf("%c ",root->data);inOrder(root->rightChild);
}
int main(){char str[1000];while (scanf("%s",str)!=EOF){int i=0;TreeNode *root= RebuildTree(i,str);inOrder(root);printf("\n");}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/682876.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据库_MySQL】MySQL彻底卸载

程序员为什么不喜欢关电脑&#xff1f; 你是否注意到&#xff0c;程序员们似乎从不关电脑&#xff1f;别以为他们是电脑上瘾&#xff0c;实则是有他们自己的原因&#xff01;让我们一起揭秘背后的原因&#xff0c;看看程序员们真正的“英雄”本色&#xff01; 卸载 要是你的…

【机器学习案例3】从科学论文图片中提取标题、作者和摘要【含源码】

在这个项目中,我的目标是从科学论文图片中提取某些部分(标题、作者和摘要)。预期提取部分是科学论文中常见的部分,例如标题、摘要和作者。输入与最终结果。我的输入是将第一页纸转换成图像。最终结果是一个 txt 文件,其中包含标题、作者和摘要部分,如下图1和图2所示。我将…

SpringBoot整合第三方技术-缓存

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开心好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…

每日OJ题_递归①_力扣面试题 08.06. 汉诺塔问题

目录 递归算法原理 力扣面试题 08.06. 汉诺塔问题 解析代码 递归算法原理 递归算法个人经验&#xff1a;给定一个任务&#xff0c;相信递归函数一定能解决这个任务&#xff0c;根据任务所需的东西&#xff0c;给出函数参数&#xff0c;然后实现函数内容&#xff0c;最后找出…

CodeForces Round 925 Div.3 A-F 题解

文章目录 A题目AC Code&#xff1a; B题目AC Code&#xff1a; C题目AC Code&#xff1a; D题目AC Code&#xff1a; E题目AC Code&#xff1a; F题目AC Code&#xff1a; A 题目 此题尽量让后面的更大&#xff0c;前面的更小。 我们尽量让第 3 3 3 位更大&#xff0c;如果…

AI定胜负?微软云Azure规模“快速赶上”亚马逊云AWS

AI技术搅动云计算格局。 据媒体报道&#xff0c;有分析数据表示&#xff0c;微软Azure云业务规模已经达到亚马逊AWS云业务规模的四分之三&#xff0c;而在五年前&#xff0c;Azure规模仅为AWS的一半。 得益于人工智能热潮和与Open AI的合作&#xff0c;微软Azure云业务最新财…

冒泡排序平均需要跑多少趟:拉马努金Q函数初探

摘要: 拉马努金Q函数在算法分析中的应用&#xff0c;初步体验 【对算法&#xff0c;数学&#xff0c;计算机感兴趣的同学&#xff0c;欢迎关注我哈&#xff0c;阅读更多原创文章】 我的网站&#xff1a;潮汐朝夕的生活实验室 我的公众号&#xff1a;算法题刷刷 我的知乎&#x…

100条经典C语言题第一天(1-10)

准备复习一下C语言&#xff0c;刷一些和面试相关的问题。 请填写 bool, float, 指针变量 与 “零值”比较的if语句 A.Bool flag 与 “零值”比较的if语句 1为true 0为false 分析 这里的flag 是布尔类型的变量 标准…

YOLOv5改进 | 一文汇总:如何在网络结构中添加注意力机制、C3、卷积、Neck、SPPF、检测头

一、本文介绍 本篇文章的内容是在大家得到一个改进版本的C3一个新的注意力机制、或者一个新的卷积模块、或者是检测头的时候如何替换我们YOLOv5模型中的原有的模块,从而用你的模块去进行训练模型或者检测。因为最近开了一个专栏里面涉及到挺多改进的地方,不能每篇文章都去讲…

linux内核原理--用户态线性地址空间,mmap,malloc,缺页异常

1.概述 前面我们介绍了内核态线性地址空间划分&#xff0c;及在内核态运行时&#xff0c;如何利用伙伴系统完成连续可用物理页框申请和释放。如何利用小块内存分配器实现高效的动态内存分配和释放。如何利用vmalloc&#xff0c;vfree完成线性地址连续但物理地址不连续的多个页框…

什么是 Flet?

什么是 Flet&#xff1f; Flet 是一个框架&#xff0c;允许使用您喜欢的语言构建交互式多用户 Web、桌面和移动应用程序&#xff0c;而无需前端开发经验。 您可以使用基于 Google 的 Flutter 的 Flet 控件为程序构建 UI。Flet 不只是“包装”Flutter 小部件&#xff0c;而是…

Socket.D 开源输传协议的集群转发特性

1、简介 Socket.D 是基于"事件"和"语义消息""流"的网络应用层协议。底层可以依赖 TCP、UDP、KCP、WebSocket 等传输层协议。其开发背后的动机是用开销更少的协议取代超文本传输协议(HTTP)&#xff0c;HTTP 协议对于许多任务(如微服务通信)来说效…

paddlepaddle 2.6版本在WSL2环境中如何使用NVIDIA显卡运行神经网络

paddlepaddle 2.6版本发布后&#xff0c;官网上可以使用NVIDIA cuda 12.x进行机器学习了&#xff0c;训练神经网络的效率大为提升。因为是在wsl2环境中安装&#xff0c;不是纯正的linux环境&#xff0c;其中一些小问题需要注意。 使用conda 安装飞浆&#xff0c;wsl2中安装了c…

上位机图像处理和嵌入式模块部署(上位机主要功能)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 目前关于机器视觉方面&#xff0c;相关的软件很多。比如说商业化的halcon、vision pro、vision master&#xff0c;当然也可以用opencv、pytorch自…

使用 Chainlit, Langchain 及 Elasticsearch 轻松实现对 PDF 文件的查询

在我之前的文章 “Elasticsearch&#xff1a;与多个 PDF 聊天 | LangChain Python 应用教程&#xff08;免费 LLMs 和嵌入&#xff09;” 里&#xff0c;我详述如何使用 Streamlit&#xff0c;Langchain, Elasticsearch 及 OpenAI 来针对 PDF 进行聊天。在今天的文章中&#xf…

ArrayList 与 LinkedList 区别

serialVersionUID 有什么作用&#xff1f; serialVersionUID 是 Java 序列化机制中的一个重要概念&#xff0c;它用于确保反序列化对象与序列化对象保持兼容。当一个类实现 java.io.Serializable 接口时&#xff0c;可以通过定义一个名为 serialVersionUID 的静态常量来指定该…

[缓存] - 2.分布式缓存重磅中间件 Redis

1. 高性能 尽量使用短key 不要存过大的数据 避免使用keys *&#xff1a;使用SCAN,来代替 在存到Redis之前压缩数据 设置 key 有效期 选择回收策略(maxmemory-policy) 减少不必要的连接 限制redis的内存大小&#xff08;防止swap&#xff0c;OOM&#xff09; slowLog …

Swift Combine 网络受限时从备用 URL 请求数据 从入门到精通十四

Combine 系列 Swift Combine 从入门到精通一Swift Combine 发布者订阅者操作者 从入门到精通二Swift Combine 管道 从入门到精通三Swift Combine 发布者publisher的生命周期 从入门到精通四Swift Combine 操作符operations和Subjects发布者的生命周期 从入门到精通五Swift Com…

数据结构.图的存储

一、邻接矩阵法 二、邻列表法 三、十字链表法