考察:DFS进行中序遍历。

注意:给除了根节点以外的父节点加左右括号。

AC代码

#include<cstdio>
#include<iostream>
#include<set>
#include<vector>
#include<map>
#include<algorithm>
#include<cmath>
#include<queue>using namespace std;const int maxn = 21;int n;struct Node{string str;int lchild,rchild;
}node[maxn];int vis[maxn] = {0};int R;int findRoot(){int root;for(int i=1;i<=n;i++){if(vis[i]==0){root = i;break;}}return root;
}void DFS(int root){if(root==NULL)return;if(root!=R&&(node[root].lchild!=-1||node[root].rchild!=-1))printf("(");if(node[root].lchild!=-1)DFS(node[root].lchild);printf("%s",node[root].str.c_str());if(node[root].rchild!=-1)DFS(node[root].rchild);if(root!=R&&(node[root].lchild!=-1||node[root].rchild!=-1))printf(")");return;
}int main(){cin>>n;for(int i=1;i<=n;i++){string str;int l,r;cin>>str>>l>>r;node[i].str = str;node[i].lchild = l;vis[l] = 1;node[i].rchild = r;vis[r] = 1;}R = findRoot();DFS(R);return 0;
}

1130 Infix Expression相关推荐

  1. PAT甲级1130 Infix Expression:[C++题解]中缀表达式、二叉树中序遍历、dfs

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:本题是借助中缀表达式这个背景,考察二叉树的中序遍历.本题需要注意的地方是加括号. 左子树和右子树无脑加括号,只要不是叶结点. 所以写d ...

  2. 1130 Infix Expression (25 分)【难度: 一般 / 知识点: 中序遍历】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805347921805312 通过入度0找到根节点,然后中序遍历. #in ...

  3. PAT 1130 Infix Expression——什么才是DFS?由“柳神遍历”写法引发的思考

    常见遍历写法 或者说书上一般的范例写法 此处特指王道,天勤等考研递归写法 void PrintTree(BiTree* T) {if (T) {PrintTree(T->lchild);Prin ...

  4. PAT 甲级 1130 Infix Expression

    思路: 1.先建树,再对树进行先根遍历: 2.若遍历某个结点不是叶子结点且不是根结点,则此次的表达式要用括号包围: 3.值一定是叶子结点,运算符一定不是叶子结点: 代码: #include<io ...

  5. PAT1130. Infix Expression (25) 中序遍历

    题意 给出一棵中缀树 然后输出他的表达式 分析 一开始还想随便在输入点中任找一个点然后不断深搜建树 后来才发现这道题输入数据就把树根据指向关系已经建立好了 只需要确定根节点然后中序遍历就好了 code ...

  6. 【Leetcode】1597. Build Binary Expression Tree From Infix Expression

    题目地址: https://leetcode.com/problems/build-binary-expression-tree-from-infix-expression/ 给定一个中缀表达式 s ...

  7. 2019秋季PAT甲级_C++题解

    2019 秋季 PAT (Advanced Level) C++题解 考试拿到了满分但受考场状态和知识水平所限可能方法不够简洁,此处保留记录,仍需多加学习.备考总结(笔记目录)在这里 7-1 Fore ...

  8. PAT甲级题目翻译+答案 AcWing(树)

    1004 Counting Leaves (30 分) 题意 : 家庭关系可以用家谱树来表示,给定一个家谱树,你的任务是找出其中没有孩子的成员. 第一行包含一个整数 N 表示树中结点总数以及一个整数 ...

  9. 【PAT甲级真题整理五】1121~1155

    终于考完了qaq把最后一堆也整理出来了 目录 1121 Damn Single(25)set.map的使用 1122 Hamiltonian Cycle(25)哈密顿回路 1123 Is It a C ...

最新文章

  1. Linux Exploit系列之三 Off-By-One 漏洞 (基于栈)
  2. 语音信号处理MATLAB实现
  3. linux查看fifo内容,linux 有名管道(FIFO)
  4. class没有发布到tomcat_Java 类在 Tomcat 中是如何加载的?
  5. MyEclipse10 Tomcat7 JDK1.7 配置
  6. esxi usb插口_酷暑大作战 | USB-C风扇新体验
  7. Windows10系统下,彻底删除卸载MySQL
  8. 用脚本整理Leetcode题解
  9. thinkphp 连接sql server
  10. asp.net core系列 37 WebAPI 使用OpenAPI (swagger)中间件
  11. 分布式文件系统FastDFS看这一篇就够了(文件上传下载、单机部署及集群部署)
  12. qt实现类似windows的屏幕保护(小球碰撞动画)
  13. 天联无法ping通服务器地址_金万维天联标准版无法连接,怎么办?
  14. Flash Builder4.7破解方法
  15. np.linalg.inv方法详解
  16. v-if导致用ref取不到元素的解决办法
  17. Chaya虚拟机学习 —— 启用Docker遇到的Bug
  18. 数据库查询显示一年中所有的周一到周五的数据
  19. Spring IOC IOP
  20. 考研高数之无穷级数题型一:判断收敛性、求收敛半径以及收敛域和收敛区间(题目讲解)

热门文章

  1. 视频录制,压缩实现源码
  2. create-react-app my-app 报错解决方法
  3. [微信小程序]组件化开发,以一个自定义模块框组件当做示例(附完整示例代码和效果图)
  4. ThunderGBM:快成一道闪电的梯度提升决策树
  5. python_day16_pythom-mysql-API
  6. 免费正则表达式辅助工具(转)
  7. PHP设计模式(4)命令链模式
  8. ASP中的常用服务器检测源码
  9. Dubbo源码解析之服务路由策略
  10. 基于Docker容器的,Jenkins、GitLab构建持续集成CI