广度优先搜索(BFS),可以被形象的描述为“浅尝辄止”,具体一点就是每个顶点只访问它的邻接节点(如果它的邻接节点没有被访问)并且记录这个邻接节点,当访问完它的邻接节点之后就结束这个顶点的访问。
广度优先用到了“先进先出”队列,通过这个队列来存储第一次发现的节点,以便下一次的处理;而对于再次发现的节点,我们不予理会——不放入队列,因为再次发现的节点:
无非是已经处理完的了;或者是存储在队...
分类:
其他好文 时间:
2015-08-26 01:50:01
阅读次数:
235
什么是队列:
队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。
队列的基本操作:
enqueue(Object obj):入队操作
dequeue():出队操作
循环队列:
由于队列如果做成数组的形式,为了保证出队列的时间复...
分类:
编程语言 时间:
2015-08-25 16:48:59
阅读次数:
205
在知乎上看到这道题目,就实现了下看看。如有错误,麻烦各位看官留言指导下。首先两个栈实现一个队列的思路是这样的: (1)用栈A作为队列的入口,只提供入队操作, 用栈B作为队列的出口,只提供出口。 (2)由于栈的特性是后进先出, 队列是先进先出, 若要出队(即把栈A最底层的元素pop出来), 需...
分类:
编程语言 时间:
2015-08-21 13:09:55
阅读次数:
250
问题:
假设有这样一个拥有3个操作的队列:
1. EnQueue(v): 将v加入队列中
2. DeQueue(): 使队列中的队首元素删除并返回此元素
3. MaxElement: 返回队列中的最大元素
设计一种数据结构和算法,让MaxElement操作的时间复杂度尽可能地低。
思路:
(1)用两个栈设计一个新的数据类型(数据类型定义为MyStack),其中一个栈用来存...
分类:
其他好文 时间:
2015-08-21 00:21:47
阅读次数:
287
题意:在一个地图里逃亡,2是起点,3是终点,1是路,0是墙,逃亡者携带一个炸弹,6分钟就会炸,要在6分钟前到达4可以重制时间,问是否能逃亡,若能则输出最小值我的思路:bfs在5步内是否存在3,存在则输出退出。记录到达每一点剩余时间,如果再次到达某点的剩余时间大于原剩余时间则更新,加入队列。 1 #i...
分类:
Web程序 时间:
2015-08-19 22:44:43
阅读次数:
87
题目描述:按之字形顺序打印二叉树
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。解析:
要分层打印,不能用常规方法,访问一个节点后,将该节点的左右子节点压入队列。
奇数层从左到右打印,偶数层从右向左打印。使用两个栈存储每一层的节点。
在访问奇数层时,将奇数层的子节点,按先左后右的顺序将子节点压入偶...
分类:
其他好文 时间:
2015-08-18 19:34:11
阅读次数:
162
原题链接:http://acm.hnu.cn/online/?action=problem&type=show&id=13397对于每一个已经开始运动的轮子要求它周围和他相接触的轮子的运动状态,然后让那些轮子依次进入队列= =速度关系== 高中学过物理应该都知道吧 1 #include 2 #i.....
分类:
其他好文 时间:
2015-08-17 08:42:53
阅读次数:
140
Number Of Consumers 消费者 这个是消费者端的消费者数量Number Of Pending Messages 等待消费的消息 这个是当前未出队列的数量。可以理解为总接收数-总出队列数Messages Enqueued 进入队列的消息 进入队列的总数量,包括出队列的。 这个数量只增不...
分类:
其他好文 时间:
2015-08-16 15:05:17
阅读次数:
380
1.题目描述:点击打开链接
2.解题思路:本题利用单调队列解决。单调队列和单调栈性质一样,内部元素严格单调递增排列。单调队列的一个典型应用就是本题的求滑动窗口的最值问题。那么怎么求解呢?首先,由于长度为k,因此我们可以先把0到k-1的下标全部试图入队列。在加入元素i时,若队列的末尾的值j满足Aj≥Ai,则不断地取出,直到队列为空或者Aj
还可以简单的理解:从头滑到尾可以求出最小值,从尾滑到头可...
很显然对于这个题来说,有的点可能需要重复走(比如旁边有Bomb-Reset-Equipment,可能你需要去一下再回来),所以标记每个点的时候应该记录访问该点时的剩余时间,如果下一次剩余时间更多则可以加入队列,否则的话加入这个点是没有意义的(因为花费的总步数更多但是剩余的时间没有变多)。 1 #in...
分类:
其他好文 时间:
2015-08-14 15:27:42
阅读次数:
87