【发布时间】:2018-07-14 01:15:36
【问题描述】:
我有一个简单的无向图,有 4 个顶点,如下所示: 我将其表示为(邻接列表): 带有链接节点的数组索引:
0 -> 1 ->3
1 -> 0 ->2
2 -> 1 ->3
3 -> 0 ->2
现在,当我尝试对例如 0 到 1 到 2 进行 DFS 时。我会做什么:
- 转到主数组中的 0 索引
- 获取下一个,即 1
- 再次转到主数组以“查找”元素 1
- ...等等
问题出在第 3 步,每当我需要查找任何节点的下一个节点时,我再次需要转到主数组,如果元素的数据与其索引有任何不同,我需要“查找”数组中的第一个元素.使用非数字节点数据会变得更糟。关于如何不需要“查找”主数组中的节点的任何帮助?
【问题讨论】:
-
如果元素的数据与其索引不同,则在这种情况下使用哈希表。
-
@krpra,但是哈希表在哈希索引冲突的情况下每个桶都有一个链表。在这种情况下,他们将如何维护边链表?
-
您打算在链表中存储的数据类型是什么。 “邻接表是一个LinkedList的数组”只是一个概念。它的性能取决于您如何实现linkedList。
标签: arrays data-structures graph