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

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

clipboard.png

并查集用多了。。。第一时间想到的是并查集却没有想到静态数组,这是一个比较大的失误;
这道题的关键在于如下几个点:
1.如何保存输入的树;
2.如何寻找根节点;
3.如何完成树的反转;
1,2两点都很容易解决,可能比较难一点的是第三点;
其实第三点也不难,我们观察一下就可以知道,树的反转本身就是在后序遍历的过程中对左右子树进行对换,就可以很轻松的得到反转后的树;
总体代码如下所示:

#include
#include
#include
#include
using namespace std;const int maxn=110;struct node{ int lchild; int rchild;}Node[maxn];bool noRoot[maxn]={false};int n,num=0;void print(int id){ printf("%d",id); num++; if(num
q; q.push(root); while(!q.empty()){ int now=q.front(); q.pop(); print(now); if(Node[now].lchild!=-1) q.push(Node[now].lchild); if(Node[now].rchild!=-1) q.push(Node[now].rchild); }}int strTonum(char c){ if(c=='-') return -1; else{ noRoot[c-'0']=true; return c-'0'; }}int findRoot(){ for(int i=0;i

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

你可能感兴趣的文章
优秀DBA应该让数据库的每一件事情都自动化
查看>>
排序算法--选择排序
查看>>
LVS+Keepalived实现高可用
查看>>
springmvc 传值问题详解
查看>>
Effective Java (创建和销毁对象)
查看>>
使用代理控制点击输入框,键盘升起,页面上升
查看>>
支持Word文档和其他文件格式间的转换的控件Spire.Doc for .NET
查看>>
centos下network和NetworkManager冲突的解决方法
查看>>
mariadb多源主从复制错误跳过.md
查看>>
我的友情链接
查看>>
PyQt中QTextEdit移动光标
查看>>
zabbix 监控打印机
查看>>
openfire servlet插件一
查看>>
老男孩期36期决心书
查看>>
Mysql 存储引擎中InnoDB与Myisam的主要区别
查看>>
系分----第十九章(系统分析设计与案例分析)
查看>>
Mac OS上搭建Apache+PHP+MySQL开发环境的详细教程
查看>>
第三方舆情收集与质量闭环建设
查看>>
ccnp大型企业综合案例分析2
查看>>
HP服务器
查看>>