uva-10562-二叉树】的更多相关文章

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1503 这道题错了好多次,一开始我直接是cin>>t,但前面可能还有空格,所以不对.就按照书上的用了fgets(buf[0],maxn,stdin). 题目的本质就是二叉树的遍历问题,直接运用dfs遍历即可. #include<iostream> #include&l…
题目链接:https://uva.onlinejudge.org/external/105/10562.pdf 紫书P170 直接在二维数组上做DFS,用的fgets函数读入数据,比较gets函数安全,但是会读入 \n,在 DFS 的时候,下一个状态要 不等于空格,并且不等于 \n; #include <bits/stdc++.h> using namespace std; +; char buf[Maxn][Maxn]; int n; void dfs(int r,int c) { prin…
题意: 按先序方式输入一棵二叉树,节点是带权的,左孩子在父节点的左一个单位,右孩子在父节点的右一个单位,从左到右输出相同水平位置节点之和. 分析: 做了好几道二叉树的题,代码应该也很好理解了.这里maxn开始设了200.500都RE,后来索性开了2000,AC了 紫书上面init函数最后应该加一句 return true; //#define LOCAL #include <iostream> #include <cstdio> #include <cstring> u…
题意: 给出一棵由中序遍历和后序遍历确定的点带权的二叉树.然后找出一个根节点到叶子节点权值之和最小(如果相等选叶子节点权值最小的),输出最佳方案的叶子节点的权值. 二叉树有三种递归的遍历方式: 先序遍历,先父节点  然后左孩子  最后右孩子 中序遍历,先左孩子  然后父节点  最后父节点 后序遍历,先左孩子  然后右孩子  最后父节点 这里有更详细的解释: http://blog.csdn.net/sicofield/article/details/9066987 紫书上面写错了,后序遍历最后一…
题意: 输入一颗二叉树,按照(左右左右, 节点的值)的格式.然后从上到下从左到右依次输出各个节点的值,如果一个节点没有赋值或者多次赋值,则输出“not complete” 一.指针方式实现二叉树 首先定义一个结构体,然后定义一个结构体指针root,作为整棵树的根节点.如果需要用到左右节点则申请一个空间,也就是用不到的就不申请,以节省空间. 遍历方式是广度优先遍历(BFS),从根节点依次拓展子节点,如果有子节点就入队,然后根节点出队.继续拓展,直到队列为空,即遍历完整棵树. 因为指针丢失以后会造成…
二叉树的先序遍历  这个还是比较简单的 ~~ /************************************************************************* > Author: xlc2845 > Mail: xlc2845@gmail.com > Created Time: 2013年10月30日 星期三 19时25分21秒 **************************************************************…
直接上代码... (另外也可以在递归的时候统计最优解,不过程序稍微复杂一点) #include <iostream> #include <string> #include <sstream> using namespace std; const int maxn=10000+10; int in_order[maxn],post_order[maxn],lch[maxn],rch[maxn]; int n; bool read_list(int *a){//输入一行用空…
题目链接:https://vjudge.net/problem/UVA-679 参考自:刘汝佳的紫书 思路: 我们发现,对于每一颗子树,假如小球是第奇数次到达这颗子树的根节点时,那么此时应该向左子树走,如果是偶数次,则向右子树方向走,假如现在给出了一组输入depth,num,即深度为depth的二叉树,求第num个小球落到的位置,那么我们发现,对于每一颗子树来说,假如现在是第num次到达这颗树的根节点,如果num为奇数,那么它应该向左子树方向走,并且是第(num+1)/2次到达左子树的根节点,如…
转载请注明: 仰望高端玩家的小清新 http://www.cnblogs.com/luruiyuan/ 题目大意: 题目传送门:UVa 10562Undraw the Trees 给定字符拼成的树,将这些树转换成特定的括号表示的树 思路: 首先,观察样例,可以发现就是先序遍历的顺序,因此可以确定dfs 但是,还有几个地方需要考虑: 同一级的结点,在同一级的括号中 由于顺序满足先序遍历,因此不需要存储树的括号表示法,更不需要构建树,直接在遍历过程中输出即可. 空树:即输入为:# 时的树的处理,我不…
题目链接:https://vjudge.net/problem/UVA-122 题目大意:输入一颗二叉树,你的任务是按从上到下,从左到右的顺序输出各个结点的值.每个结点都按照从根节点到它的移动序列给出(L表示左,R表示右) 在输入中,每个结点的左括号 和右括号之间没有空格,相邻结点之间用一个空格隔开.每棵树的输入用一对空括号)()结束  入上图所示: 注意:如果从根结点到某个叶节点的路径有的结点没有在输入中给出,或者给出超过一次,输出not complete.  结点个数不超过256 思路:显然…