Java邻接列表

Java邻接列表,java,hash,matrix,adjacency-list,Java,Hash,Matrix,Adjacency List,我很难理解如何扫描图形的邻接列表。我了解邻接表是如何工作的,以及它们之间的映射关系,但我不了解存储它们的数据类型。我的任务是获取一个输入文件,该文件告诉顶点的数量G=(V,E),并为图形中的其他数字提供边 例如: 3 010 101 110 因此: 从那里我必须对他们进行呼吸搜索和深度搜索。哈希表是我最好的选择吗 使用BFS和DFS的区别在于您存储数据的数据结构,一个是“队列”,另一个是“堆栈”(您的答案)。如果您使用java列表,您可以从开头或结尾获取它们,但也可以使用“真实”堆栈和队列 因

我很难理解如何扫描图形的邻接列表。我了解邻接表是如何工作的,以及它们之间的映射关系,但我不了解存储它们的数据类型。我的任务是获取一个输入文件,该文件告诉顶点的数量G=(V,E),并为图形中的其他数字提供边

例如:

3
010
101
110
因此:


从那里我必须对他们进行呼吸搜索和深度搜索。哈希表是我最好的选择吗

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

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

在一个while循环之后,当您的列表中有元素时,让它继续运行

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

您可以添加两个元素,停止添加同一元素两次,您应该有一个已访问节点的列表


但是,我怀疑您是否想知道在哪里存储邻接列表。一组列表就可以了。每个顶点,顶点[i]都有一个包含所有连接顶点的列表。

谢谢!我现在用另一种方式做。我只需要像你说的那样使用堆栈和队列。谢谢你,伙计!!!
0 maps to 1
1 maps to 0
2 maps to 0
2 maps to 1