news 2026/4/20 7:01:51

【例3-5】扩展二叉树(信息学奥赛一本通- P1340)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【例3-5】扩展二叉树(信息学奥赛一本通- P1340)

【题目描述】

由于先序、中序和后序序列中的任一个都不能唯一确定一棵二叉树,所以对二叉树做如下处理,将二叉树的空结点用·补齐,如图所示。我们把这样处理后的二叉树称为原二叉树的扩展二叉树,扩展二叉树的先序和后序序列能唯一确定其二叉树。

现给出扩展二叉树的先序序列,要求输出其中序和后序序列。

【输入】

扩展二叉树的先序序列。

【输出】

输出其中序和后序序列。

【输入样例】

ABD..EF..G..C..

【输出样例】

DBFEGAC DFGEBCA
/* //先建树 顺序存储 #include <bits/stdc++.h> using namespace std; string a; struct node{ int l; int r; char data; node(){ l=r=0; } }tre[2000]; int ind=-1;//记录读取到a数组哪一个数 void midorder(int root){//中序遍历 if(tre[root].l!=0) midorder(root*2); if(tre[root].data!='.') cout<<tre[root].data; if(tre[root].r!=0) midorder(root*2+1); } void postorder(int root){//后序遍历 if(tre[root].l!=0) postorder(root*2); if(tre[root].r!=0) postorder(root*2+1); if(tre[root].data!='.') cout<<tre[root].data; } void build(int k){ ind++; if(ind>=a.size()) return; if(a[ind]=='.'){ tre[k].data='.'; return; } else{ tre[k].data=a[ind]; tre[k].l=k*2; build(k*2); tre[k].r=k*2+1; build(k*2+1); } } int main(){ cin>>a; build(1); midorder(1); cout<<endl; postorder(1); } */ //先建树 然后链式存储 #include <bits/stdc++.h> using namespace std; string a; struct node{ int l; int r; char data; node(){ l=r=0; } }tre[2000]; int ind=-1;//记录读取到a数组哪一个数 int ind2=1; void midorder(int root){//中序遍历 if(tre[root].l!=0) midorder(tre[root].l); if(tre[root].data!='.') cout<<tre[root].data; if(tre[root].r!=0) midorder(tre[root].r); } void postorder(int root){//后序遍历 if(tre[root].l!=0) postorder(tre[root].l); if(tre[root].r!=0) postorder(tre[root].r); if(tre[root].data!='.') cout<<tre[root].data; } void build(int k){ ind++; if(ind>=a.size()) return; if(a[ind]=='.'){ tre[k].data='.'; return; } else{ tre[k].data=a[ind]; tre[k].l=++ind2; build(ind2); tre[k].r=++ind2; build(ind2); } } int main(){ cin>>a; build(1); midorder(1); cout<<endl; postorder(1); }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 16:09:00

【装机必备】360绿色小工具独立版最全的大集合,总共39 个小工具

360绿色小工具独立版最全的大集合 总共39 个小工具 ├─360备份助手.exe - 2.35M ├─360CAD病毒专杀工具&#xff08;单文件&#xff09;.exe - 747.94K ├─360插件清理独立版.7z - 281.82M ├─360c盘搬家.7z - 282.55M ├─360C盘专清工具SysCleanPro.7z - 284.98M ├─36…

作者头像 李华
网站建设 2026/4/18 5:03:39

办公文档全能处理工具箱,我的ABC工具箱,办公必备

这款办公软件合集工具箱功能全面&#xff0c;堪称办公人员的得力助手&#xff0c;能够满足日常各种文档处理需求&#xff0c;通过集成多种高效工具提升办公效率。 智慧办公多功能支持 我的ABC工具箱具备全方位的办公支持能力&#xff0c;包括批量处理页眉页脚、删除文档链…

作者头像 李华
网站建设 2026/4/20 4:59:12

Higress云原生网关监控告警完全指南:从零搭建智能运维体系

Higress云原生网关监控告警完全指南&#xff1a;从零搭建智能运维体系 【免费下载链接】higress Next-generation Cloud Native Gateway | 下一代云原生网关 项目地址: https://gitcode.com/GitHub_Trending/hi/higress 在微服务架构盛行的今天&#xff0c;API网关的稳定…

作者头像 李华
网站建设 2026/4/20 8:40:55

一站式了解http1.1,http2.0和http3.0

文章目录引言http1.1和http2.0协议格式连接复用头部压缩服务端推送总结http2.0和http3.0彻底解决队头阻塞握手速度与延迟连接迁移拥塞控制总结总结❤️引言 无论在面试还是工作&#xff0c;我们都会遇到关于http的问题&#xff0c;这次我们通过http1.1和http2.0的对比&#xf…

作者头像 李华
网站建设 2026/4/19 10:28:59

LobeChat是否支持Preload预加载?首屏性能优化技巧

LobeChat 是否支持 Preload 预加载&#xff1f;首屏性能优化实战指南 在部署个人 AI 助手的实践中&#xff0c;你有没有遇到过这样的情况&#xff1a;用户刚打开聊天界面&#xff0c;屏幕却卡在一片空白中长达两到三秒&#xff1f;尽管后端模型响应飞快&#xff0c;但前端“冷启…

作者头像 李华
网站建设 2026/4/16 13:03:21

HVV大型攻防演练检测篇,从零基础入门到精通,看完这一篇就够了_软件资产和互联网暴露资产

HVV行动作为国家级攻防演练具有重大意义&#xff0c;旨在通过检验单位网络和信息基础设施的安全防护、应急处置和指挥调度能力&#xff0c;提高信息系统的综合防御能力。而要打好一场完美的防守战役应该先从组织本身的脆弱性整改开始&#xff0c;其整改工作应该具备全局性视图。…

作者头像 李华