题目:Given a binary tree, return thelevel ordertraversal of its nodes' values. (ie, from left to right, level by level).For example:Given binary tree{3,...
分类:
其他好文 时间:
2014-07-01 12:44:09
阅读次数:
199
题目:Given a binary tree, return thebottom-up level ordertraversal of its nodes' values. (ie, from left to right, level by level from leaf to root).For ...
分类:
其他好文 时间:
2014-07-01 12:26:07
阅读次数:
215
上一篇中的队列的定义与实现(C语言实现) 中,无论是顺序队列还是链式队列,在尾加和删除头部的操作时,总有一个时间复杂度让人不满意。比如在顺序队列中,删除头部的操作后,总要将后面所有的结点都向前移动一位,这里消耗的较大的;又如在在链式队列中,尾加结点时,为了寻找到最后一位结点,要遍历整个队列,时间复杂度同样是O(n)。
为此,这里需要做出一些改变。...
分类:
编程语言 时间:
2014-06-22 20:11:58
阅读次数:
151
小时候,我们做早操的时候或者军训的时候,都排成一列,有头有尾。假设你迟到了,只能站到最后面一个,退场的时候,都是由第一个先走的。这就是队列雏形。
队列的定义
队列是一种特殊的线性表
队列仅在线性表的两端进行操作
队头(Front):取出数据元素的一端
队尾(Rear):插入数据元素的一端
队列不允许在中间部位进行操作!...
分类:
编程语言 时间:
2014-06-18 07:44:56
阅读次数:
301
队列常常也使用链式存储的方式来实现。为了方便操作,同顺序存储一样,我们要维护一个头指针和一个尾指针。如下图:
在链式队列中显然不会出现假溢出的情况。但在出队时,要及时释放内存。由于在队列的实现:顺序队列中,对队列的描述已经很清楚了。就闲话不多说,直接上代码:
类定义和类实现
#include
#include
using namespace std;
typedef int ELem...
分类:
其他好文 时间:
2014-06-10 08:04:30
阅读次数:
253
二叉树的层序遍历(要求区分层,例如每层遍历完输出换行)
单单层序遍历非常简单,一个队列就搞定了,但是区分层则要麻烦些。总的思路无非就是在每次print的时候,要能通过某个东西
区分出当前节点是否是一层最后一个节点,或者下一层的最后一个节点,感觉有点类似于机器学习中找个区分度明显的特征:
1.自己的解法,在单队列基础上,输入队列的数据添加一个标志 ,LevelHeaded,同时...
分类:
其他好文 时间:
2014-06-01 10:49:44
阅读次数:
267
出题:要求实现层序遍历二元搜索树,并对比BFS与DFS的区别分析:层序遍历也就是由上至下,从左到右的遍历每一层的节点,类似于BFS的策略,使用Queue可以实现,BFS不能用递归实现(由于每一层都需要存储所有节点,所以非常耗用内存)。这段代码主要用于反映BFS与DFS的联系;解题:
1 class....
分类:
其他好文 时间:
2014-05-27 01:11:41
阅读次数:
398
出题:要求层序遍历二叉树,从上到下的层次,每一层访问顺序为从左到右,并将节点一次编号,输出如下;如果只要求打印指定的level的节点,应该如何实现。 a b c
d e f g h i分析:原始的层序遍历类似于BFS,打印当前访问的节点curNode的序列号,并将其直接子节点放入队列queu...
分类:
其他好文 时间:
2014-05-25 22:22:45
阅读次数:
321
剑指offer上的第23题,实际上就是考察二叉树的层序遍历,具体思想可以参考这里。
题目描述:
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
输入:
输入可能包含多个测试样例,输入以EOF结束。
对于每个测试案例,输入的第一行一个整数n(1<=n<=1000, :n代表将要输入的二叉树元素的个数(节点从1开始编号)。接下来一行有n个数字,代表第i个二叉树节点的元素的值。接下来有n行,每行有一个字母Ci。
Ci=’d’表示第i个节点有两子孩子,紧接着是左孩子编号和右孩子编号。
Ci=’l’表示第i个...
分类:
其他好文 时间:
2014-05-22 08:29:03
阅读次数:
306
这道题很难。
之前的题目我提到过一次用两个vector来做层序遍历的,就是因为这道题。要想最后恢复出单词变换的路径,就需要事先保存,根据dp中路径恢复的启发,保存的应该是一个单词的前一个变换节点。可能有很多个单词都能变换到当前单词,因此应该是一个set。用一个二维的vector保存当前可以变换到的单词和变换出这些单词单词。每一维的vector存放的都是一个set。设存放当前可访问单词的vecto...
分类:
其他好文 时间:
2014-05-15 19:37:03
阅读次数:
437