0

我对邻接列表是什么以及优先级队列是什么感到有些困惑。

我将使用 Arraylist 制作我的邻接列表。我感到困惑的是邻接列表中的内容。

邻接表是否用于显示所指向的内容?

例如,您有以下数据:

u v weight
1 4   6
2 5   7
3 7   1
1 3   2
1 2   5
2 2   9

所以对于邻接列表,它看起来像这样:

1 --->4---->3---->2
2 --->5---->2
3 --->7

其中每个相同的“u”(即u列下有三个1)指向对应的“v”

4

2 回答 2

1

图中节点的邻接列表为您提供了与该节点相邻的所有节点。基本上,邻接表是节点表示“我可以从我自己开始到达这些其他节点”或“这是我连接到的节点”的方式。一个更具体的例子是,如果你想象一个城市(我们称之为 Graphville),它有通往附近其他城市的道路。然后 Graphville 是节点,您可以从 Graphville直接到达(即不经过其他城市)的所有城市的列表将在 Graphville 的邻接列表中。

优先级队列是一种类似于常规队列的数据结构,只是每个元素都有一个与之关联的“优先级”。通常,较高优先级的元素在优先级队列中的较低优先级元素之前被处理。

于 2013-11-12T23:20:03.657 回答
0

在图论和计算机科学中,图的邻接表表示是无序列表的集合,图中的每个顶点对应一个无序列表。每个列表描述了它的顶点的邻居集合。

意味着它只存储一个节点的邻居。所以我们可以将邻居存储在linkedListorArrayArrayList中。

优先级队列是一种抽象数据类型,类似于常规队列或堆栈数据结构,但其中每个元素都有一个与之关联的“优先级”。在优先级队列中,优先级高的元素先于优先级低的元素提供服务。如果两个元素具有相同的优先级,则根据它们在队列中的顺序提供服务。

在 java 中,你有PriorityQueue, PriorityBlockingQueue

来自维基

于 2013-11-12T23:21:09.690 回答