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

AcWing 1256:扩展二叉树

【题目来源】
https://www.acwing.com/problem/content/1258/

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

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

【输入格式】
扩展二叉树的先序序列。

【输出格式】
输出其中序和后序序列。

【数据范围】
原二叉树的结点数不超过 
26,且均由大写字母表示。

【输入样例】
ABD..EF..G..C..

【输出样例】
DBFEGAC
DFGEBCA

【算法分析】
扩展二叉树的前序遍历相当于普通二叉树的“前序+中序”,能唯一确定二叉树的形状;
扩展二叉树的后序遍历相当于普通二叉树的“后续+中序”,能唯一确定二叉树的形状。

【算法代码】

#include <bits/stdc++.h>
using namespace std;string pre;
string in,post;
int k;void dfs() {char root=pre[k++];if(root=='.') return;dfs(); //Enter the left subtreein+=root;dfs(); //Enter the right subtreepost+=root;
}int main() {cin>>pre;dfs();cout<<in<<endl;cout<<post<<endl;return 0;
}/*
in:
ABD..EF..G..C..out:
DBFEGAC
DFGEBCA
*/




【参考文献】
https://www.cnblogs.com/0fflineboy/p/15403913.html
https://www.acwing.com/solution/content/36138/

https://blog.csdn.net/m0_72895175/article/details/132356141




 

相关文章:

  • C++ ariac2 Windows库编译
  • 【Node-RED 4.0.2】4.0版本新增特性(官方版)
  • 智能洗车管理系统设计
  • 安装llama_factory
  • HttpUtils工具类
  • base64字符串空格问题
  • 【智能算法】目标检测算法
  • doris集群物理部署保姆级教程
  • 深入理解 RabbitMQ、RocketMQ等常⽤的消息中间件进⾏消息的异步数据处理
  • 使用 PHP 和 Selenium WebDriver 实现爬虫
  • 数据质量管理-可访问性管理
  • 从零搭建Prometheus到Grafana告警推送
  • Ansible自动化部署
  • pdf拆分,pdf拆分在线使用,pdf拆分多个pdf
  • 主干网络篇 | YOLOv5/v7 更换骨干网络之 MobileNetV3 | 基于神经网络搜索的轻量级网络
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • 345-反转字符串中的元音字母
  • angular2开源库收集
  • C语言笔记(第一章:C语言编程)
  • HTTP中GET与POST的区别 99%的错误认识
  • JS题目及答案整理
  • PHP那些事儿
  • Promise面试题,控制异步流程
  • React-redux的原理以及使用
  • Webpack 4 学习01(基础配置)
  • 安装python包到指定虚拟环境
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 大数据与云计算学习:数据分析(二)
  • 读懂package.json -- 依赖管理
  • 学习笔记:对象,原型和继承(1)
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 【云吞铺子】性能抖动剖析(二)
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • #pragma 指令
  • (1)bark-ml
  • (1)常见O(n^2)排序算法解析
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (三) diretfbrc详解
  • (五十)第 7 章 图(有向图的十字链表存储)
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .net FrameWork简介,数组,枚举
  • .net 调用php,php 调用.net com组件 --
  • .NET 解决重复提交问题
  • .NET框架
  • .NET下的多线程编程—1-线程机制概述
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @SpringBootApplication 包含的三个注解及其含义
  • @我的前任是个极品 微博分析
  • [20150904]exp slow.txt
  • [c++] C++多态(虚函数和虚继承)
  • [C++] 从零实现一个ping服务