news 2026/5/26 3:47:42

【例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/5/25 19:47:23

Actix Web架构详解:高性能Rust Web框架的设计哲学与核心机制

1 Actix Web框架简介Actix Web是Rust生态中最知名、性能最高的Web框架之一&#xff0c;自2015年诞生以来&#xff0c;在TechEmpower基准测试中屡次获得顶尖排名。该框架基于Rust语言的零成本抽象原则构建&#xff0c;将高级别抽象与底层性能完美结合&#xff0c;使开发者能够构…

作者头像 李华
网站建设 2026/5/26 5:41:25

38、Linux硬件选购与进阶知识指南

Linux硬件选购与进阶知识指南 1. 硬件升级须知 在考虑节省开支之前,了解硬件升级的相关知识很有必要。很多人会被那些宣称可升级的产品吸引,但计算机行业和传统工具、厨房电器行业不同。计算机厂商往往希望你每年更换新设备,因为为旧产品提供升级服务对他们来说不赚钱。 …

作者头像 李华
网站建设 2026/5/25 15:07:50

49、体育中的领导力与沟通:理论与应用

体育中的领导力与沟通:理论与应用 在体育领域,伟大的领导者并不少见,如文斯隆巴迪(Vince Lombardi)、帕特海德萨米特(Pat Head Summitt)和约翰伍登(John Wooden),他们都取得了非凡的成就。然而,我们不禁要问,是什么让他们成为伟大的领导者,我们又能否从他们身上学…

作者头像 李华
网站建设 2026/5/26 2:46:03

运维胡乱转型的,能骂醒一个算一个!

【值得收藏】运维转网络安全&#xff1a;从入门到精通的系统学习路径 本文分享了运维工程师转型网络安全的经验与学习路径。文章指出网络安全不仅限于Web安全&#xff0c;还包括内网、域渗透等多领域技术&#xff0c;并提供了四阶段系统学习规划&#xff1a;网络安全筑基、漏洞…

作者头像 李华
网站建设 2026/5/26 2:46:01

想靠GIS转码拿高薪?这5个方向的难度门槛你真的了解吗?

01 WebGIS开发 难度&#xff1a;⭐️⭐️⭐️ 这个方向可以说是最容易的&#xff0c;难点在于以后的上升渠道&#xff0c;可能需要转前端开发、架构的概率比较大&#xff0c;否则比较难得到很好的长期发展。Web GIS开发涉及使用HTML、CSS、JavaScript等技术构建交互式地图和地…

作者头像 李华
网站建设 2026/5/25 7:07:50

一文摸透DDoS攻击所有概念,值得收藏!

一、到底什么是DDoS攻击 DDoS是Distributed Denial of Service的简称&#xff0c;中文是分布式拒绝服务。这有点拗口吧&#xff1f;这样&#xff0c;我们先理解下DDoS的前身DoS&#xff08;Denial of Service&#xff09;&#xff0c;即拒绝服务。 最基本的DoS攻击就是攻击者利…

作者头像 李华