我有一个定向的未加权图。给出了节点数和节点之间的所有链路。我尝试使用向量数组执行任务,但java不支持它。 ArrayList和Vectors支持随机访问迭代器但不能在java中执行它,因为我是新手。我不想使用二维矩阵。我想将它实现为N个给定节点的数组,其中每个节点都有一个连接到它的节点的列表。请有人提供伪代码或任何可以帮助我的东西。例如,图表为
5
3 4
4 2
1 5
4 3
1 3
2 5
这里给出了5个编号为1到5的节点。以下是从第一个节点到第二个节点的有向边。我想将其表示为图的邻接列表。任何人都可以实施吗?
答案 0 :(得分:5)
Map<Node, List<Node>>
或List<List<Node>>
等adjacency list可能适用。
附录:在使用Java Collections时,注意提供特征方法的Map
和List
是interfaces可能会有所帮助,而您可能希望选择特定方法implementations基于您希望使用数据结构实现的算法的要求。
附录:有一个相关的例子here。
答案 1 :(得分:1)
您可以使用许多集合数据结构,特别是哈希表或集合,以达到您的目的。 Java为您提供了许多集合通用容器(HashMap-s,ArrayList-s等)。我不是Java专家,但是搜索 Java Collections 会产生很多结果,例如: this tutorial
答案 2 :(得分:1)
太糟糕了,你要求实现定向的未加权图,而不是直接使用。否则,我建议你使用一个易于制作的框架,几乎任何与网络/图形相关的东西都称为JUNG2。您可以在GUI或非GUI模式下使用它。它会为你节省大量的时间。以下是其教程链接: