L2-006. 树的遍历

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h> struct node
{
long left,right;
}tree[]; long a[],b[]; void work(long l,long r,long p,long q,long fa,long cond)
{
long root=a[r],pos;
for (pos=p;pos<=q;pos++)
if (b[pos]==root)
break;
if (cond==)
tree[fa].left=root;
else
tree[fa].right=root;
if (p<=pos-)
work(l,l+pos--p,p,pos-,root,);
if (pos+<=q)
work(l+pos-p,r-,pos+,q,root,);
} int main()
{
long i,head,tail,n;
long q[];
scanf("%ld",&n);
for (i=;i<=n;i++)
{
scanf("%ld",&a[i]);
tree[a[i]].left=;
tree[a[i]].right=;
}
for (i=;i<=n;i++)
scanf("%ld",&b[i]);
work(,n,,n,,); head=;
tail=;
q[]=a[n];
while (head<tail)
{
head++;
printf("%ld",q[head]);
if (tree[q[head]].left!=)
{
tail++;
q[tail]=tree[q[head]].left;
}
if (tree[q[head]].right!=)
{
tail++;
q[tail]=tree[q[head]].right;
}
if (head!=tail)
printf(" ");
}
return ;
}

L2-011. 玩转二叉树

 #include <stdio.h>
#include <stdlib.h> struct node
{
long left,right;
}tree[]; long a[],b[],q[]; void work(long x,long y,long p,long q,long father,long cond)
{
long pos,count;
if (father!=)
{
if (cond==)
tree[father].left=b[p];
else
tree[father].right=b[p];
}
for (pos=x;pos<=y;pos++)
if (a[pos]==b[p])
break;
count=pos-x;
if (count>)
work(x,pos-,p+,p+count,b[p],);
if (y-pos>)
work(pos+,y,p+count+,q,b[p],);
} void change(long d)
{
if (tree[d].left== && tree[d].right==)
return ;
long temp;
temp=tree[d].left;
tree[d].left=tree[d].right;
tree[d].right=temp;
change(tree[d].left);
change(tree[d].right);
} int main()
{
long n,i,head,tail;
scanf("%ld",&n);
for (i=;i<=n;i++)
scanf("%ld",&a[i]); //mid
for (i=;i<=n;i++)
scanf("%ld",&b[i]); //pre
for (i=;i<=n;i++)
{
tree[i].left=;
tree[i].right=;
}
work(,n,,n,,);
change(b[]); head=; tail=;
q[]=b[];
while (head<tail)
{
head++;
printf("%ld",q[head]);
if (tree[q[head]].left!=)
{
tail++;
q[tail]=tree[q[head]].left;
}
if (tree[q[head]].right!=)
{
tail++;
q[tail]=tree[q[head]].right;
}
if (head!=tail)
printf(" "); //output不能多余的空格
}
return ;
}

团体程序设计天梯赛 L2-006. 树的遍历 L2-011. 玩转二叉树的更多相关文章

  1. 树状数组+二分答案查询第k大的数 (团体程序设计天梯赛 L3-002. 堆栈)

    前提是数的范围较小 1 数据范围:O(n) 2 查第k大的数i:log(n)(树状数组查询小于等于i的数目)*log(n)(二分找到i) 3 添加:log(n) (树状数组) 4 删除:log(n) ...

  2. 团体程序设计天梯赛(CCCC) L3009 长城 方法证明

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  3. 团体程序设计天梯赛(CCCC) L3021 神坛 的一些错误做法(目前网上的方法没一个是对的) 和 一些想法

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  4. 团体程序设计天梯赛(CCCC) L3019 代码排版 方法与编译原理密切相关,只有一个测试点段错误

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  5. 团体程序设计天梯赛(CCCC) L3015 球队“食物链” 状态压缩

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code #include <cstdio> #include ...

  6. 团体程序设计天梯赛(CCCC) L3014 周游世界 BFS证明

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  7. 团体程序设计天梯赛(CCCC) L3013 非常弹的球 不同思路

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  8. 团体程序设计天梯赛(CCCC) L3012 水果忍者 上凸或下凹的证明

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code #include <cstdio> #include ...

  9. PTA L2-001 紧急救援-最短路(Dijkstra)多条最短路找最优解并输出路径 团体程序设计天梯赛-练习集

    L2-001 紧急救援 (25 分)   作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快 ...

  10. PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)

    PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++:      欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/ ...

随机推荐

  1. python基础_字符编码

    字符编码的历史 阶段一:现代计算机起源于美国,最早诞生也是基于英文考虑的ASCII 阶段二:为了满足中文,中国人定制了GBK 阶段三:各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的 ...

  2. 插件使用_kindeditor

    1.官网 进入官网:http://kindeditor.net/demo.php 插件下载:http://kindeditor.net/down.php 2.使用 (1)文件夹说明 ├── asp a ...

  3. static 继承

    静态方法大家应该都比较熟悉,在这里主要谈一下静态方法在继承时的一些注意事项. 1.父类方法如果是静态方法,子类不能覆盖为非静态方法: 2.父类方法如果是非静态方法,子类不能覆盖为静态方法: 3.父类静 ...

  4. Java第二天——标识符命名规则、Java的知识、快捷键的使用、Scanner获取值的常用方法

    1.标识符命名规则 字母.下划线.数字.美元符号($)由这四个部分组成. 标识符=首字母+其他 首字母:字母.下划线.美元符号($) 其他:字母.下划线.数字.美元符号($) 注意: 1.首字母不能为 ...

  5. 解决登录不上网页得tomcat(授权manager-gui角色的操作如下)

    1:编辑/usr/local/tomcat/conf/tomcat-users.xml文件,在没有注释的内容中添加: <role rolename="manager-gui" ...

  6. Beta阶段——2

    一.提供当天站立式会议照片一张: 二. 每个人的工作 (有work item 的ID) (1) 昨天已完成的工作: 昨天主要是对beta阶段的任务做了总结 (2) 今天计划完成的工作: 今天主要是对管 ...

  7. GDI+缩放图片

    uses WinAPI.GDIPAPI, WinAPI.GDIPOBJ; var  Bitmap1: TGPBitmap;  Bitmap2: TBitmap;  Graphic: TGPGraphi ...

  8. teamcity执行jmeter脚本使用Executable with parameters方式不能正确运行解决思路

    如下图是选择command Line:Executable with parameters设置启动jmeter.bat  命令如下 command Executable: D:\apache-jmet ...

  9. SEO优化之HTML代码优化最重要的5个标签

    众所周知,HTML代码一直是搜索引擎抓取的重点.搜索引擎会将HTML中的某些元素标签作为影响网页排名的重要依据 在我们之前的文章中也或多或少地向大家介绍了有关HTML代码的优化技巧,接下来将系统地讲解 ...

  10. ACM数论之旅14---抽屉原理,鸽巢原理,球盒原理(叫法不一又有什么关系呢╮(╯▽╰)╭)

    这章没有什么算法可言,单纯的你懂了原理后会不会运用(反正我基本没怎么用过 ̄ 3 ̄) 有366人,那么至少有两人同一天出生(好孩子就不要在意闰年啦( ̄▽ ̄")) 有13人,那么至少有两人同一月 ...