概述
·
上图表示一个无权图G, 使用每个顶点S 作为输入参数, 我们想要找出从S到所有顶点的最短路径。
我们只对包含在路径中的边数有兴趣, 因此在边上不存在权。 显然, 这是赋权最短路径的特殊情形。
因为我们可以为所有的边赋以权为1
·
·
详细过程
这里存在一种图的搜索方式: 广度优先遍历。 该方法按层处理, 顶点; 距离最近的顶点首先被赋值, 然后最远的点最后被赋值。 这很像树的层次遍历
有了这种方法, 我们必须把他翻译成代码。 现在我们对于每个顶点有三组信息: 是否被访问过, 距离起始点的距离, 这条最短路径中这个节点的上一个节点
void unweighted(table T)
{
int currdist;
vertex V, W;
for (currdist = 0; currdist < numvertex; currdist++)
{
for each vertex V
{
if (!T[V].know &