无向图因为DFS本身就是一个入栈出栈的过程,所以我们直接利用DFS的性质来实现栈,其伪代码如下:DFS(u): While (u存在未被删除的边e(u,v)) 删除边e(u,v) DFS(v) End PathSize ← PathSize + 1 Path[ PathSize ] ← u 1 .....
分类:
其他好文 时间:
2015-08-01 08:50:47
阅读次数:
99
根据维基百科的伪代码实现:广度优先BFS:使用队列,集合标记初始结点已被发现,放入队列每次循环从队列弹出一个结点将该节点的所有相连结点放入队列,并标记已被发现通过队列,将迷宫路口所有的门打开,从一个门进去继续打开里面的门,然后返回前一个门处 1 """ 2 procedure BFS(G,v) i....
分类:
编程语言 时间:
2015-07-31 17:46:02
阅读次数:
235
很多数据结构的书上讲解数据机构时都是采用伪代码实现,其实感觉蛮不直观的,所以对于所有的数据结构操作我都将其用C实现一遍。
树是学习二叉树的基础,也是后面理解B树,B+树的等树的基础,下面就给出树的几个简单操作,方便理解。...
分类:
其他好文 时间:
2015-07-30 11:28:54
阅读次数:
122
闲来无事,就把龙书拿出来有看了看,把最近学的总结一下。
FIRST(X)集合定义:可从X推导得到的串的首符号的集合,其中X是任意文法符号。如果X=>······=>ε ,那么ε也在FIRST(X)中。(定义来自龙书)
算法伪代码(非准确版):
foreach(nonterminal N)
FIRST(N) = {}
while(some set is changing)
foreach (production p: N->β1 … βn)
if (β1== a …)
FIRST(N)∪...
分类:
其他好文 时间:
2015-07-29 23:07:47
阅读次数:
273
几个排序算法,我是按照算法的伪代码用java实现的,刚开始是int类型的,后来换成泛型。这是好早之前写的代码了,现在那出来温习下,就当是准备面试把1.简单选择排序这个算法应该是最简单的把,就是在数组中从头开始循环,选择最小的放在最前面,这个应该很好实现就不废话了 public static >...
分类:
编程语言 时间:
2015-07-27 20:39:57
阅读次数:
148
在这里需要强调的一点是:输入流和输出流,差别在于出和入,是相对于程序而言的。“输入流式得到数据,输出流是输出数据”。输入是程序得到外部数据,输出是程序向外部传输数据,二者没有必然的联系,都是流,差别是方向不同,也就是说,程序可以只有输入流而没有输出流,或者只有输出流而没有输入流。伪代码如下:Outp...
分类:
其他好文 时间:
2015-07-26 15:42:40
阅读次数:
62
增广路以及残留网络的定义不再赘述了。算导上说的很清楚,证明也有,看懂了就知道怎么求最大流了。
而算导上提到的FF方法以及ek算法的伪代码中都是将流与残留容量分开储存,其实代码实现的时候我们只需存正反向弧的残留容量即可。
然后是对残留网络的一些理解,残留网络中的反向弧是怎么来的?
残留网络的每条边都是这条有向边的残留容量,而残留容量又由公式cf(u,v)=c(u,v)-f(u,v)得到,那么对...
分类:
其他好文 时间:
2015-07-23 11:57:03
阅读次数:
181
目前浅显地看过《数据结构与算法分析》《算法设计与分析基础》两本涉及到算法的书。简单认为,学习算法的重点和难点都不在代码实现上,而在:1、数学逻辑式 这个是写出伪代码的关键2、算法正确性证明 证明该算法能得到最优解还是比较优解数学逻辑式,从两方面考虑:一种是迭代,另一种是递归。迭代思维相对...
分类:
编程语言 时间:
2015-07-22 17:58:47
阅读次数:
118
拓扑排序(针对有向无回路图DAG)是深度优先搜索的一个应用,其结果图中所有顶点的一个线性排列。
伪代码如下:
EG:
拓扑排序完整代码如下:
#include
#include
#include
#include
using namespace std;
#define UDG 0
#define DG 1
#define WHITE 0
#define ...
分类:
编程语言 时间:
2015-07-20 09:21:45
阅读次数:
172
图有两种标准的表示方法,即邻接矩阵和邻接表(通常邻接矩阵用于稠密图,邻接表用于稀疏图)。如下:
对于图的搜索有两种方法:深度优先搜索 & 广度优先搜索。
广度优先搜索(Breadth-first search)
广度优先搜索是将已发现和未发现顶点之间的边界沿其广度方向向外扩展。亦即算法首先会发现和s距离为k的所有点,然后才会发现和s距离为k+1的其他顶点。
伪代码:
...
分类:
编程语言 时间:
2015-07-20 09:18:55
阅读次数:
184