谁能解释这个BFS代码是如何工作的?

aya治

我是算法和数据结构的新手。这段代码来自我错过的课程,现在我很难理解这一点。请求初始顶点后,我不明白发生了什么。下面是代码

#include<iostream>

#include<conio.h>

#include<stdlib.h>

using namespace std;
int i, j, k, e, n, f, r, v, c[10][10], q[10], visit[10], visited[10];
int main() {
  //clrscr();
  cout << "Enter number of nodes: ";
  cin >> n;
  cout << "Enter number of edges: ";
  cin >> e;
  cout << "enter edge details";
  for (k = 1; k <= e; k++) {
    cin >> i >> j;
    c[i][j] = 1;

  }
  cout << "enter initials vertex:";
  cin >> v;
  cout << "\n visited vertices are:" << v << "";
  visited[v] = 1;
  k = 1;
  while (k < n) {
    for (j = 1; j <= n; j++)
      if ((c[v][j] != 0) && (visited[j] != 1) && (visit[j] != 1)) {
        visit[j] = 1;
        q[r++] = j;
      }
    v = q[f++];
    cout << v << "";
    k++;
    visit[v] = 0;
    visited[v] = 1;
  }
}
亭子

q是BFS典型的队列(先进先出,FIFO)。队列前端指向f(从中提取值),队列后端指向r(在其中将新值添加到队列)。

队列首先是空的,并且j当前顶点的邻居v被添加到队列中(在其“后”侧)。当一个顶点j在队列中时,将其visit[j]设置为1,否则为0。这是为了防止将同一顶点两次添加到队列中。

从队列的最前面拉出下一个顶点。现在将其视为已访问,因此visited[v]现在将其设置为1并visit[v]清除(这有点过大,但是可以)。再次,这确保顶点仅被访问(和输出)一次。

通过使用队列,我们​​可以确保以顶点到初始顶点的距离(以边数为单位)的顺序访问顶点。

因为有n顶点,所以当外部循环迭代了n时间时,所有顶点都会被访问那才是最k重要的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

谁能解释我这个Java代码是如何工作的?

来自分类Dev

谁能解释这个代码

来自分类Dev

朋友谁能解释这个代码

来自分类Dev

谁能解释$ flipCount如何工作?

来自分类Dev

谁能解释这个指令?

来自分类Dev

谁能解释这个javaScript

来自分类Dev

谁能解释这个指令?

来自分类Dev

谁能解释这个功能程序的工作原理?

来自分类Dev

谁能解释如何简化这个集合算术问题?

来自分类Dev

谁能解释一下上面的代码如何工作以及使用哪个概念?

来自分类Dev

谁能解释下面的查询如何工作?

来自分类Dev

谁能解释这个复杂的指针表达?

来自分类Dev

谁能解释这个Swift Option选项

来自分类Dev

谁能解释这个奇怪的活动?

来自分类Dev

谁能解释这个没有代码体的类构造函数?

来自分类Dev

请谁能解释一下这个递归代码?

来自分类Dev

谁能解释代码putchar('/'// * / 1)的含义

来自分类Dev

谁能解释以下opengl代码?

来自分类Dev

谁能解释这段代码的输出?

来自分类Dev

谁能解释为什么我的Java代码多播无法通过LAN工作?

来自分类Dev

谁能解释在c中置换字符串时此代码的工作?

来自分类Dev

谁能解释为什么我的Java代码多播无法通过LAN工作?

来自分类Dev

谁能解释这个python静态类变量的情况?

来自分类Dev

谁能解释这个功能,我听不懂

来自分类Dev

谁能解释这个python静态类变量的情况?

来自分类Dev

谁能解释这个查询是什么意思?

来自分类Dev

谁能解释这个python语法-反向词

来自分类Dev

Hibernate和Jersey依赖项冲突(javassist)-谁能解释这是如何工作的?

来自分类Dev

谁能解释我,这种结构初始化实际上是如何工作的?

Related 相关文章

热门标签

归档