L2-011. 玩转二叉树

 

给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。

输入格式:

输入第一行给出一个正整数N(<=30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。

输出格式:

在一行中输出该树反转后的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。

输入样例:

7
1 2 3 4 5 6 7
4 1 3 2 6 5 7

输出样例:

4 6 1 7 5 3 2
思路:前面好像也有一个类似的,输出层序的话每一层的输出序号其实可以根据其中序遍历的顺序来输出,这样你就只需要将每一个元素划好它所在的层就行。
如何划层详情见代码吧
#include<cstring>
#include<climits>
#include<queue>
#include<iostream>
using namespace std;
int a[], b[];
struct Node{
int id;
int c;
int quan;
bool operator <(const Node &a)const{
if (a.c == c)return a.quan>quan;
else return a.c < c;
}
};
priority_queue<Node>que;
void Creat(int s, int e, int c)
{
if (s>e)return;
if (s == e){
Node node;
node.id = a[s];
node.c = c;
node.quan = s;
que.push(node);
}
else{
int p = s, min = b[a[p]];
for (int i = s + ; i <= e; i++){
if (b[a[i]] < min){
min = b[a[i]];
p = i;
}
}
Node node;
node.id = a[p];
node.c = c;
node.quan = p;
que.push(node);
Creat(s, p - , c + );
Creat(p + , e, c + );
}
}
int main()
{ int n; cin >> n;
for (int i = ; i < n; i++)
cin >> a[i];
for (int i = ; i < n; i++)
{
int num; cin >> num;
b[num] = i;
}
Creat(, n - , );
int flag = ;
while (!que.empty()){
if (flag == ){
cout << que.top().id;
flag++;
}
else{
cout << " " << que.top().id;
}
que.pop();
}
cout << endl;
return ;
}
 

最新文章

  1. c#字段
  2. Direct3D 10学习笔记(三)——文本输出
  3. MySQL explain key_len 大小的计算
  4. 【Java】【编译】javac编译源代码时,若源文件使用了别的java源代码的函数,javac会自动关联。
  5. B树,B-树,B+树,B*树
  6. JVM垃圾回收理论知识
  7. Python每日一练(2):找出html中的所有链接(Xpath、正则两个版本)
  8. HDU 1813 Escape from Tetris
  9. 浅谈Verilog HDL代码编写风格
  10. float和position
  11. JMeter关联的几种方式总结案例
  12. OC 应用跳转QQ私聊界面或者申请加群
  13. Confluence 6 自定义管理员联系信息
  14. 基本够用的php.ini配置文件(CentOS7)
  15. MySQL到底能支持多大的数据量?
  16. python装饰器1
  17. Android.DebugTools.Traceview &amp; dmtracedump
  18. Linux 文件授权
  19. Java知识锦囊
  20. r语言 列出所有变量

热门文章

  1. bzoj2440 [中山市选2011]完全平方数——莫比乌斯+容斥
  2. Spark GraphX 属性图操作
  3. SSM整合配置错误记录
  4. bzoj 1925: [Sdoi2010]地精部落【dp】
  5. P2470 [SCOI2007]压缩
  6. php编译安装参数详解
  7. 题解报告:hdu 1010 Tempter of the Bone
  8. 402 Remove K Digits 移掉K位数字
  9. 《编写可维护的Javascript》学习总结
  10. css边框样式、边框配色、边框阴影、边框圆角、图片边框