news 2026/4/23 13:05: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/23 12:41:40

Mac数据丢失别慌张!亲测这款神器,轻松找回你的重要文件!

作为一个Mac老用户&#xff0c;我经历过最崩溃的瞬间&#xff0c;莫过于手滑误删了还没备份的工作文件&#xff0c;或者硬盘突然罢工&#xff0c;重要照片和视频瞬间“蒸发”。那种绝望感&#xff0c;懂的都懂&#xff01;在试过各种方法无果后&#xff0c;我遇到了 Wondershar…

作者头像 李华
网站建设 2026/4/23 11:26:25

36、Linux用户环境与硬件选购指南

Linux用户环境与硬件选购指南 在Linux系统的使用过程中,用户环境的配置和硬件的选购是非常重要的环节。合理的用户环境配置能提升使用效率,而正确的硬件选择则能确保系统的稳定运行。下面将详细介绍Linux用户环境的相关设置以及硬件选购的要点。 Linux用户环境配置 启动文…

作者头像 李华
网站建设 2026/4/22 15:31:50

LAMBDA的排序写法和方法引用(类名::成员)使用规范

假设有两个对象&#xff1a; Item item1 new Item(4.5); Item item2 new Item(3.8); 使用 .sorted((a, b) -> Double.compare(a.rating, b.rating)) → 比较 4.5 vs 3.8 → 正数 → item1 排在 item2 后 → [3.8, 4.5]&#xff08;升序&#xff09; 使用 .sorted((a, b) -…

作者头像 李华
网站建设 2026/4/23 11:26:27

1、运动心理学:概念与应用全解析

运动心理学:概念与应用全解析 1. 运动心理学概述 近年来,应用运动与锻炼心理学的关注度急剧上升。运动心理学作为一门学科和专业,涵盖了运动员、教练等在体育活动中的心理层面。它不仅是学术研究的领域,还能在实际场景中发挥重要作用,比如帮助运动员提升表现、指导教练更…

作者头像 李华
网站建设 2026/4/23 12:56:51

56、运动与锻炼的心理生物学:从心理影响到运动损伤的全方位解析

运动与锻炼的心理生物学:从心理影响到运动损伤的全方位解析 运动对心理健康的积极影响 大量研究表明,定期运动能改善心理状态,具体表现为减少负面情绪、增加正面情绪。这一结论促使许多医疗保健专业人员将运动作为治疗特定心理健康症状的手段,在很多情况下,运动治疗情绪…

作者头像 李华