题目大意:
给定一颗满二叉树的后序遍历,小写字母表示叶子节点,以从下到上,从右到左的顺序输出这棵树。
解题思路:
用堆栈构建二叉树,再用bfs遍历树,用堆栈逆序输出。
注意:构树时,若节点用malloc动态分配会超时。...
分类:
其他好文 时间:
2014-08-03 18:13:15
阅读次数:
277
Problem Description
The doggie found a bone in an ancient maze, which fascinated him a lot. However, when he picked it up, the maze was changed and the way he came in was lost.He realized that the bo...
分类:
其他好文 时间:
2014-08-02 23:31:54
阅读次数:
274
题目地址:HDU 1242
这个题相比于普通的bfs有个特殊的地方,经过士兵时会额外消耗时间,也就是说此时最先搜到的时候不一定是用时最短的了。需要全部搜一遍才可以。这时候优先队列的好处就显现出来了。利用优先队列,可以让队列中的元素按时间排序,让先出来的总是时间短的,这样的话,最先搜到的一定是时间短的,就不用全部搜一遍了。PS:我是为了学优先队列做的这题。。不是为了这题而现学的优先队列。。
代码...
分类:
其他好文 时间:
2014-08-02 20:59:44
阅读次数:
245
War Chess
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1732 Accepted Submission(s): 416
Problem Description
War chess is hh's...
分类:
其他好文 时间:
2014-08-02 20:58:34
阅读次数:
442
这道题本质上还是考查二元树的遍历
如果一棵树只有一个结点,它的深度为1。如果根结点只有左子树而没有右子树,那么树的深度应该是其左子树的深度加1;同样如果根结点只有右子树而没有左子树,那么树的深度应该是其右子树的深度加1。如果既有右子树又有左子树呢?那该树的深度就是其左、右子树深度的较大值再加1。
上面的这个思路用递归的方法很容易实现,只需要对遍历的代码稍作修改即可
参考资料:...
分类:
其他好文 时间:
2014-08-02 10:03:03
阅读次数:
184
二叉树遍历是二叉树中非常基础的部分,也是学习二叉树必须熟练掌握的部分,下面我们先给出二叉树三种遍历方式的定义,并通过举例来说明二叉树遍历的过程。
二叉树的遍历分为:前序遍历(也叫先序遍历)、中序遍历、后序遍历。所谓前、中、后都是根据当前子树根结点相对左右孩子的位置而言,也就是说:...
分类:
其他好文 时间:
2014-08-01 23:13:42
阅读次数:
324
题目链接题意:在有费用k限制的条件下,求从1到n的最短距离,如果最短距离相同求费用最小的,边为有向边,其中可能有多个相同的源点和目标点,但是距离和费用不同。分析:用bfs和邻接表来把每一个边搜一下,因为用了优先队列,所以先到n的一定是最小的 。 1 #include 2 #include 3 #.....
分类:
其他好文 时间:
2014-08-01 22:59:42
阅读次数:
247
简单的BFS。无需任何优化。利用一个结构体数组储存状态,三个量a,b,move分别表示A箱,B箱的球数以及移动次数。注意对特殊情况的处理以及对不可能情况的判定:(1)两数之差为奇数,由题意,假设aMAXMOVE){ return -1; break; } //printf("Fr...
分类:
其他好文 时间:
2014-08-01 22:39:32
阅读次数:
274
题意:其实看图很好理解题目意思,就是在图中找一个点,使到所有的目标地点的最大距离最小。思路:一看这题就觉得是BFS,因为可以很好的广搜,但是枚举任意一点搜索会T,因为最多有10000个点。我们既然可以从一个点到每个目标点的距离求得,为何不可枚举每个目标点,到一个点的距离的最大值,使之最小的点应该就是...
分类:
其他好文 时间:
2014-08-01 19:24:22
阅读次数:
246
二叉树主要有三种遍历方式:前序遍历、中序遍历和后序遍历,每种方式都有递归和非递归两种方法。递归的方法简单明了,但是会比较耗时,非递归的方法效率相对较高,但是算法也比较晦涩。本文就这三种遍历方式做简单的介绍。...
分类:
其他好文 时间:
2014-08-01 13:47:41
阅读次数:
223