![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构基础 - 二叉树
文章平均质量分 69
buxizhizhou530
这个作者很懒,什么都没留下…
展开
-
UVa 112 树求和
题意:给定一个数字,以及一个描述树的字符序列,问存不存在一条从根到某叶子结点的路径使得其和等于那个数。难点在于如何处理字符序列,因为字符间可能有空格、换行等。思路:本来想着用scanf的(后发现scanf貌似不能做),感觉太麻烦,想看网上有没有处理比较好的,一搜全是用C++的cin流的~ 还是自己用C写了一下。用的getchar()。getchar()主要就是比较繁琐,需要一个一个字符比较,原创 2014-08-26 00:09:05 · 1314 阅读 · 0 评论 -
UVa 297 四分树
题意:每张图片可分为1024个像素,用四叉树结构表示。最高高度5。每个像素或黑或白,即或1或0.现将两个这样的图,即树合并,同一位置的像素其中一张是黑,则结果是黑色。求最终合并的图中有多少黑像素。思路:最直接的思路就是构建四叉树,然后对两个四叉树进行合并对比吧。把四叉树建好之后,发现不会合并了,想了下,很复杂。网搜的有对比四叉树以及填充数组这两种思路。其中有一个直接没有建树、填数组就行了,没仔原创 2014-08-27 12:38:30 · 910 阅读 · 0 评论 -
UVa 712 S树
题意:有一棵完全二叉树,每层元素有同一变量表示,从上到下分别为x1,x2,... 最后一层叶子结点会有0或1的赋值,输入给出。然后如果xi取值为0时,则往左子树走,否则往右子树走,直到走到叶子结点,得到一值。思路:因为是完全二叉树,可以用顺序存储,数组实现即可。另外也只需存叶子结点的值就行了。对一结点k来说,左孩子是2k,右孩子是2k+1。因为高度最大为7,最多有x7,所以可以直接取数组的第二原创 2014-08-27 20:35:57 · 1039 阅读 · 0 评论 -
UVa 699 落叶
题意:题意我都快记不清了!!!被坑好久。。就是从根结点开始,每往左走一步,横坐标减1,往右走一步横坐标加1。然后统计同一横坐标下的data值之和。思路:这个我特地先想了能不能用递归建树的,后来发现在建树过程中其实就可以算了。用一个数组来存各横坐标的data值,然后每来一个该横坐标的结点就直接加上就可以了,完了再遍历输出。很简单的,思路也很清晰。本来以为可以一次过的,结果4次TLE+6次WA原创 2014-08-28 02:56:41 · 924 阅读 · 0 评论 -
UVa 327 计算简单C表达式
题意:给出一个C表达式,计算其值。其中操作数只有26个字母,从a到z依次初始值为1到26;操作符有二位的 + 和二位的 - ,和正常意思一样,然后还有一位的自增 ++ 和一位的自减 - - ,都有前缀和后缀两种,都和正常理解的一样。然后计算表达式值,并给出式子中的各变量最后的值。对了,每个变量在表达式中最多只出现一次。思路:题目最后也有给出思路,就是将所有一位操作符即自增和自减操作符去掉,再将原创 2014-08-29 14:13:19 · 1140 阅读 · 0 评论 -
UVa 839 天平
题意:天平的两端,每端的重量 wl 和 wr ,每端到中点的距离 dl 和 dr ,要满足wl*dl==wr*dr才能保持天平平衡。天平的每端可以再系一个天平,该端的重量为该子天平的总重量。问最终天平是否能平衡。 这里的天平是指上面竖直一根系,系着一个水平的金属棒,金属棒的两端挂物体,要保持平衡,不要想成了放在桌子上的那种天平。 题目Not so mobile 翻译成天平应该是意译了吧,觉得还原创 2014-08-29 16:38:46 · 1162 阅读 · 0 评论 -
UVa 10562 看图写树
题目:题目就是给出一幅ASCII字符构成的树的图,然后转换成由字符括号构成的树的表示形式。可以知道,树有孩子结点的话,正下方会有一个字符 '|' ,紧接着会有一个覆盖所有孩子结点的字符序列“-------”,然后其下就是孩子结点。思路:先将所有数据读下来。然后递归处理,给定一个左右边界,在该边界内逐个检查字符,如果是结点字符,则判断有无孩子等后续处理。注意:因为每行会有空格,所以不能用sc原创 2014-08-29 21:07:53 · 1063 阅读 · 0 评论 -
UVa 548 树
题意:给出中序和后序序列,求从根到叶子结点这样路径和值最小的叶子结点。如果和值相等,则选择叶子结点值较小的那个。思路:由中序和后序序列递归地构造二叉树。顺序存储显然不行,使用链式存储。由于每个结点输入的是数字而不是字母,这里采用整型数组来存的,而不再是字符串,可能更方便些。build(n,a1,a2)函数是利用中序序列a1和后序序列a2构造有n个结点的二叉树,返回根结点指针。递归构造出二叉树后原创 2014-08-26 19:30:01 · 916 阅读 · 0 评论