BFS过程:
一:访问顶点V,并标记V为已经访问
二:顶点V入队列
三:如果队列非空,进行执行,否则算法结束
四:出队列取得对头顶点u,如果顶点未被访问,就访问该顶点,并标记该顶点为已经访问
五:查找u的第一个邻接节点w
六:如果w不存在,则转到步骤三,否则循环执行
a. 如果w没有被访问过,则先把w入队列
b.查找顶点u的下一个邻接节点,记为w,并转到步骤六
上图使用B...
分类:
其他好文 时间:
2014-10-03 02:21:33
阅读次数:
288
切割木板的顺序是自由的,所以每次选择两块最短的板,组合在一起,加入队列,原来两个板出队,直到队列中为空或者只剩下一个板时结束。这里使用优先队列较为方便。
#include
#include
#include
#include
#include
#define ll __int64
using namespace std;
int len[20005];
int main()
{
//...
分类:
其他好文 时间:
2014-10-01 18:42:41
阅读次数:
150
双向队列
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
想想双向链表……双向队列的定义差不多,也就是说一个队列的队尾同时也是队首;两头都可以做出队,入队的操作。
现在给你一系列的操作,请输出最后队列的状态;
命令格式:
LIN X X表示一个整数,命令代表左边进队操作;
RIN ...
分类:
其他好文 时间:
2014-10-01 18:02:41
阅读次数:
196
用染色法判断二分图是这样进行的,随便选择一个点,1.把它染成黑色,然后将它相邻的点染成白色,然后入队列2.出队列,与这个点相邻的点染成相反的颜色根据二分图的特性,相同集合内的点颜色是相同的,即但是如果这个图不是二分图,那么就会这样把与1相邻的点2,3染成白色,然后入队列,然后2出队列,要把与2相邻的...
分类:
其他好文 时间:
2014-09-30 18:17:19
阅读次数:
241
标准队列是一种先进先出的线性结构。
设想一个用数组实现的容量为2的队列,入队2次后出队1次,再入队一次。传统队列会认为rear已指向末尾,入队失败。而循环队列会将新元素放在arr[0]的位置上,允许rear
队空和队满时头尾指针均相等,因此通过元素个数判断更合理。
{CSDN:CODE:478002}...
分类:
其他好文 时间:
2014-09-30 18:14:19
阅读次数:
169
关于两个栈实现一个队列和两个队列实现一个栈问题,网上有很多资料。这里只描述自己认为操作最少的方法。
两个栈实现一个队列
思想:假设两个栈分别为s1,s2。对s1进行入队,出队时,先判断s2是否为空,如果是则将s1中元素压入s2并弹出最上面元素,如果不是,则直接弹出s2最上面的元素。
EnQueue(s1,s2,k){
push(s1,k);
}
//出队
DeQueue(s1,s2)...
分类:
其他好文 时间:
2014-09-29 20:43:42
阅读次数:
213
1:请描述数据结构中栈和队列的区别。并说出3个操作。
答:栈先进后出。队列先进先出。例如(pop() push() empty() back() front());
2:请描述一下C++中多态。举个例子:
我学java的。但我记得多态应该是重载和重写。
重载
Class A
{
int foo(int a){...}
int foo(int a,int b){...}...
分类:
其他好文 时间:
2014-09-27 02:11:49
阅读次数:
191
做了些实验,感觉用链表实现队列比用数组实现队列性能好进出队的每秒操作数比较数组队列enqueue37,037dequeue4,166,666链表队列enqueue277,778dequeue666,667先入队n次,再出队n次的运行时间比较,单位是秒出入队次数|数组队列运行时间|链表队列运行时间1,...
分类:
其他好文 时间:
2014-09-26 14:18:48
阅读次数:
292
在上文《.Net中的并行编程-2.ConcurrentQueue的实现与分析》 中解释了无锁的相关概念,无独有偶BCL提供的ConcurrentQueue也是基于原子操作实现, 由于ConcurrentQueue的代码较多所以本文主要分析几个常用操作:入队(EnQueue) 、出队(TryDequ....
分类:
Web程序 时间:
2014-09-26 01:15:57
阅读次数:
245
C++中的队列,模板队列,实现了入队,出队,查询大小等功能。用模板实现的。...
分类:
编程语言 时间:
2014-09-25 17:36:59
阅读次数:
218