我无法理解如何在邻接列表中扫描图表。我理解邻接表是如何工作的以及它们之间的映射,但我不明白的是存储它们的数据类型是什么类型。我的任务是获取一个输入文件,告诉顶点的数量G =(V,E)并给出图中其他数字的边缘。
例如:
3
010
101
110
这样:
0 maps to 1
1 maps to 0
2 maps to 0
2 maps to 1
从那里我必须对它们实施呼吸搜索和深度搜索。哈希表是我最好的选择吗?
答案 0 :(得分:1)
使用BFS和DFS的区别在于您存储数据的数据结构,一个是“队列”,另一个是“堆栈”(您的答案)。如果你使用java列表,你可以从头开始或从头开始,但你也可以使用“真正的”堆栈和队列。
因此,在您的情况下,创建一个列表,并将搜索的来源存储在其中。
经过一段时间的循环,当你的列表中有元素时,请继续。
因此,从列表中选择您的元素(第一个或最后一个)并评估它是否是您的目标,如果不是,则将其所有邻居存储在列表中并继续运行。
你可以添加两个停止添加相同元素的东西两次,你应该有一个访问节点列表。
但是,我怀疑你是否想知道在哪里存储邻接列表。一系列列表可以。每个顶点,vertex [i]都有一个List,其中包含所有连接的顶点。