博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PAT A1064
阅读量:5917 次
发布时间:2019-06-19

本文共 620 字,大约阅读时间需要 2 分钟。

clipboard.png

这道题自己起先想到的思路是根据完全二叉树性质,找出左右子树,递归进行;
但是示例给出的思想很值得学习;
对于一个二叉搜索树,其中序序列必递增的,所以可以利用这一点;
我们先对输入的节点序列进行递增排序,之后我们对一个空的数组进行中序遍历,每遇到一个节点,就把相应的递增序列的值保存进去;
这是一种对空序列进行中序序列建树的思想,很值得借鉴;
这里还是要注意一点,就是对于完全二叉树的存储序列来说,其序列就是层序的遍历顺序,没必要再重新写一个函数来进行层序遍历;

#include
#include
#include
#include
#include
using namespace std;using std::vector;int n;const int maxn=1010;int number[maxn];int CBT[maxn];int index=0;void inorder(int root){ if(root>n) return; inorder(2*root); CBT[root]=number[index++]; inorder(2*root+1);}int main(){ scanf("%d",&n); for(int i=0;i

转载地址:http://ecwvx.baihongyu.com/

你可能感兴趣的文章
MacOS下安装MongoDB数据库
查看>>
通俗易懂的设计模式
查看>>
[ ES6 ] 快速掌握常用 ES6 (二)
查看>>
有哪些外行看上去很高大上,但在内行眼里 low 得不行的东西?
查看>>
【非技术性能力】磨刀不误砍柴工之长/短期direction insights
查看>>
JavaWEB开发15——Listener&Listener
查看>>
ABAP的Package interface, 安卓的manifest.xml和Kubernetes的Capabilities
查看>>
Spring中注解大全和应用
查看>>
Rancher 2.1全面发布,优化Kubernetes集群运维
查看>>
Java基础【一】 - 基本数据和引用数据
查看>>
PouchContainer 富容器技术解析
查看>>
云平台管理,说多了都是泪!
查看>>
JavaScript/数据类型/function/作用域
查看>>
通过windows命令,来区分电脑上的selenium脚本会用的chromedriver.exe版本。
查看>>
CentOS6.5-64位安装puppeteer,提示Chrome无法启动,查找并安装缺失依赖包——吕江民·敬上...
查看>>
正则表达式
查看>>
多从库时半同步复制不工作的BUG分析
查看>>
微信小程序自定义tab,多层tab嵌套实现
查看>>
进击的 JavaScript(一) 之 类型转换
查看>>
实现高可用的两种方案与实战
查看>>