
数据结构-二叉树
文章平均质量分 68
miss_minor
坚持,请你坚持
展开
-
10562 - Undraw the Trees
题目:10562 - Undraw the Trees题目大意:将题目所给的树转换成有括号的树。解题思路:将题目给的数保存在数组中,然后分层次来判断。首先先给出带判断的根节点(不一定是最上面的)的范围,确定了范围就好办了。然后找到不是空格的数,判断下方是否有‘|’, 有的话就需要递归的调用函数解决这样类似的问题。这时就需要确定这次递归的范围了,范围就是‘-----’的首尾。原创 2014-02-02 15:10:29 · 657 阅读 · 0 评论 -
712 - S-Trees
题目:712 - S-Trees题目大意:题目给出x1,x2,x3,···xn的顺序,再给出按这样建树的结果,最后给出VVAs,求它的值。解题思路:例如x1如果是1,就说明往右走,0就是往左走。这样的话就不需要建树,如果xi是1的话,就 + pow(2,xi的高度 - 1);0就不需要处理。#include#include#includeconst in原创 2014-02-02 18:05:36 · 648 阅读 · 0 评论 -
839 - Not so Mobile
题目:839 - Not so Mobile题目大意:给出一个杠杆,判断是否平衡。解题思路:分别建两棵树,里面放重量,和对应的距离。然后后序的方式判断每一个小杠杆是否平衡。因此要先判断00情况,然后0x情况,然后x0情况,最后才是xy情况。反着的话,当0x的情况解决完后,情况就变成例了yx的情况,所以xy要放在最后。#includeint t;struct t原创 2014-02-04 21:21:58 · 632 阅读 · 0 评论 -
548 - Tree
题目:548 - Tree题目大意:给树中序后续遍历,然后找出叶子节点到裉节点的和最小的,如果和相同就看哪个叶子节点数值小,就输出那个叶子节点的值。解题思路:先利用中序后序建树,在遍历找和最小的。注意:释放叶子节点时,要赋值为NULL;否则指针就变成野指针了。#include #include #include const int N = 10005;原创 2014-02-04 17:49:00 · 642 阅读 · 0 评论 -
297 - Quadtrees
题目:297 - Quadtrees题目大意:给两个四叉树,合并成一个四叉数,并求最后的那个四叉树的黑色的面积。解题思路:1、我是先忽略第一个根节点来建树的,所以要考虑第一个为1,和为0的情况。 2、将字符串转换成对应的数的数组,p为2,f为1,e为0, 需要buildtree();建树的时候可以用递归,因为每个p对应都有四个孩子,如果孩子里面还有p的话就再次调用b原创 2014-02-04 18:55:54 · 649 阅读 · 0 评论 -
699 - The Falling Leaves
题目:699 - The Falling Leaves题目大意:给一棵树,要求算在同一竖直位置的值得和,从左到右打印出来;解题思路:先建树,然后重点就是调用递归来将同一竖直位置的值加起来,用一个数组来存放,根放在数组最中间,左边的孩子就中间-1,右边的就中间的加1,这样同一竖直的位置的就会加到相同的数组元素里,并且要同时记录最左边的数,以便后面输出时控制最后的回车。#i原创 2014-02-05 15:50:07 · 561 阅读 · 0 评论 -
327 - Evaluating Simple C Expressions
题目:327 - Evaluating Simple C Expressions题目大意:就是求给定的表达式的值。解题思路:首先先去掉空格,不然会出现一些错误。然后用一个数组来存放字母对应的值。再来先做自增自减,把存放字母的那个数组里的值改掉,然后如果是先自增减在用的就还需要把要用来计算的那个算式的值改掉,先用在自增减的就不需要改变,然后再把“++”, “--”去掉。计算的时候原本原创 2014-02-09 17:10:06 · 686 阅读 · 0 评论 -
112 - Tree Summing
题目:112 - Tree Summing题目大意:给出一棵树,求从根到叶子节点的和是否等于给定的值,只要有一个符合就输出yes,否则输出no。解题思路:题目给出的是前序遍历,所以可以用递归输入。(根(左孩子)(右孩子))大概是这样的输入。我参考了别人的写法,不用建树的。自己想的话估计会建树,当初也先过用递归,可能还不太会用所以没成功。#include#inc原创 2014-02-09 21:50:14 · 601 阅读 · 0 评论 -
UVA536 - Tree Recovery(递归)
题目:UVA536 - Tree Recovery(递归)题目大意:给出一棵二叉树的前序遍历和中序遍历,求后序遍历。解题思路:根据前序遍历将中序遍历的序列分成一棵棵子树,知道这个子树只有一个节点,然后就可以将它按顺序放到后序数组值中了。代码:#include #include const int N = 30;char preord[N], inor原创 2014-09-12 10:13:55 · 969 阅读 · 0 评论