0

我得到这个邻接矩阵,我必须从文本文件中读取,并且应该返回读取宽度优先和深度优先的结果。在邻接矩阵上应用宽度和深度优先搜索?

我知道宽度优先使用FIFO队列,而深度优先使用LIFO堆栈。当我有图表时,我可以获得这些搜索,并且可以手动。我只是不确定如何在计算机上使用C++来使用矩阵。

我将不胜感激关于如何解决这个问题的指导。 我有一些问题:

  1. 我是否将矩阵从文本文件保存到我的程序中作为常规矩阵?
  2. 一旦阅读文本文件以显示搜索结果,该怎么办?

回答

0
  1. http://www.geeksforgeeks.org/depth-first-traversal-for-a-graph/

http://www.geeksforgeeks.org/breadth-first-traversal-for-a-graph/

BFS: 注:无向图的扫描矩阵的上部或下部的三角形就足够了。 对于有向图,应该考虑整个矩阵。

第一步:维护一个布尔值数组,用于保存节点是否被访问。

第二步:执行队列

第三步:开始与任何元素,并将其推到队列中,将其标记为已访问。 第四步: 在循环 出列在queue..let顶级元素,它是X

对于x..push他们的所有未访问的邻居到队列中,将其标记为已访问。

待办事项步骤4,直到队列为空..

图表遍历顺序在推元件到队列的时间给出。

我会解释dfs,如果我找到时间

+1

建议添加一个链接的总结,否则你的答案是无用的链接烂掉后。 – user4581301

+0

我会现在就这样做..细 –