Java邻接列表

时间:2014-01-20 23:21:51

标签: java hash matrix adjacency-list

我无法理解如何在邻接列表中扫描图表。我理解邻接表是如何工作的以及它们之间的映射,但我不明白的是存储它们的数据类型是什么类型。我的任务是获取一个输入文件,告诉顶点的数量G =(V,E)并给出图中其他数字的边缘。

例如:

3
010
101
110

这样:

0 maps to 1
1 maps to 0
2 maps to 0
2 maps to 1

从那里我必须对它们实施呼吸搜索和深度搜索。哈希表是我最好的选择吗?

1 个答案:

答案 0 :(得分:1)

使用BFS和DFS的区别在于您存储数据的数据结构,一个是“队列”,另一个是“堆栈”(您的答案)。如果你使用java列表,你可以从头开始或从头开始,但你也可以使用“真正的”堆栈和队列。

因此,在您的情况下,创建一个列表,并将搜索的来源存储在其中。

经过一段时间的循环,当你的列表中有元素时,请继续。

因此,从列表中选择您的元素(第一个或最后一个)并评估它是否是您的目标,如果不是,则将其所有邻居存储在列表中并继续运行。

你可以添加两个停止添加相同元素的东西两次,你应该有一个访问节点列表。

但是,我怀疑你是否想知道在哪里存储邻接列表。一系列列表可以。每个顶点,vertex [i]都有一个List,其中包含所有连接的顶点。