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

【例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); }
http://www.cnnetsun.cn/news/61834.html

相关文章:

  • Gin框架架构详解:高性能Go语言Web框架的设计哲学与实践
  • 【OpenHarmony】轻量级公共基础库commonlibrary_utils_lite
  • 41、Linux系统深入解析与操作指南
  • SSM小型餐饮综合管理系统j1c7m(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
  • 2025年计算机类专业的就业分析
  • 社区工作者资源合集(第二辑)
  • 护网怎么做,护网前、护网中,护网后,总共60道工序,一道一道
  • 远程管理效能革命:Quasar架构下的智能传输体系重构
  • Happy LLM:Github爆火!手把手教你从0手搓个大模型!
  • SSM线上学习系统8e88w(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
  • 深度解析:MindsDB与ChromaDB向量数据库集成的高效实战指南
  • 32、深入了解Samba与Linux安全策略
  • 26、调试 Shell 程序的实用方法
  • Symbolic 英文单词学习
  • AI开发全流程工具链:从编码辅助到模型部署的实战指南
  • 英语综合练习题
  • 电力物联网系统能够发挥什么作用
  • 压气站SCADA数据采集远程监控系统方案
  • 12、高级渗透测试与中间人攻击技术详解
  • Vue3 生命周期全面解析:从创建到销毁的完整指南
  • 3个让我后悔的StyleGAN2数据集错误:从失败到成功的真实经历
  • 电商数据采集 API 接口:全流程采集与分析指南(附实战代码)
  • 7、Docker 镜像构建、注册与存储全解析
  • Python语法基础笔记(四)
  • 13、找回丢失文件的实用方法
  • 14、Linux 用户与用户组管理全解析
  • 30亿参数撬动87%成本下降:ERNIE 4.5 VL重塑多模态AI产业格局
  • PaperXie AI毕业论文写作功能深度实测:从选题到成稿,一个被低估的学术效率引擎如何重塑我的研究流程
  • torchtune终极部署指南:从微调到生产环境的完整链路
  • 科研认知减负革命:书匠策AI如何将文献“噪音”转化为创新“信号”