问题标签 [adjacency-list]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
565 浏览

c - 一个节点在其邻接列表中

预期的输出是一个值为 1 的节点,其自身在其邻接列表中,输出类似于 1 -> 1。

我的问题是看起来我有两个不同的节点。当我对其中一个进行更改时,另一个不会更改,就像另一个节点一样。

例如,在构建列表后,如果我更改节点的值,我应该得到类似 3 -> 3 的输出。但我得到 3 -> 1。节点上的更改不会影响另一个。当我尝试将 adj[0] 指向 t->next 但是我得到一个无限循环......

0 投票
2 回答
29832 浏览

java - 无向图的邻接表

任何人都知道我在哪里可以获得使用邻接表表示无向图的通用示例代码?

图形数据将来自 .txt 文件:节点在第一行指定,以空格分隔。边缘在以下行中指定,每条边缘在单独的行上。

像这样...

我的 .txt 文件没有与图形方法连接。我还收到以下 NPE 错误:

为无向图创建邻接列表并执行标准 Graph ADT 方法。

0 投票
4 回答
5481 浏览

java - 非加权图中邻接表中的最短路径

首先,我想确保结构正确。据我所知,表示图形的邻接列表如下所示:

相邻列表

AdjList 是一个 ArrayList,其中每个元素都是一个对象。每个对象内部都包含一个 ArrayList 来表示连接的顶点。例如,在上图中,Vertext 1(AdjList 中的第一个索引)连接到 AdjList 的索引 2、4 和 5 处的顶点。这种邻接表的表示是否正确?(ps:我知道索引从 0 开始,为了简单/方便,我把 1 放在这里)。

如果正确,我应该使用哪种算法来找到两个顶点之间的最短路径?

0 投票
1 回答
10227 浏览

java - 无向图添加/删除顶点;removeEdge 方法

任何人都可以帮助以下三种方法吗?

addVertex:添加单个顶点

removeEdge:删除两个顶点之间的边。

removeVertex:删除单个顶点

使用邻接表来表示无向图。数据位于 .txt 文件中(示例如下):

1 2 3 4 5 6 7 8 9

1 2

1 4

1 3

2 4

2 5

3 6

4 6

5 7

5 8

6 9

7 9

8 9

代码:

0 投票
1 回答
3608 浏览

breadth-first-search - BFS 在邻接矩阵列表 O(m+n) 上如何?

我试图弄清楚 BFS 如何是 O(m+n),其中 n 是顶点数,m 是边数。

算法是:

在邻接列表中,我们将顶点存储在数组/哈希表中,以及每个顶点与其他顶点形成的边的链表。

我的主要问题是:我们如何实现获取未访问的子节点?很明显,您将节点标记为已访问,但是在遍历时,您会遍历所有链表,因此您将每条边计算两次,所以复杂度是 O(2m+n) 对吧?这是否只是四舍五入到O(m + n)?

另外,我们可以对邻接矩阵采用类似的策略吗?如果给定一个大小为 nxn 的矩阵,并且我想知道是否存在特定元素,我可以做一个 BFS 来解决这个问题吗?

谢谢。

0 投票
3 回答
3823 浏览

r - Generating clusters from adjacency matrix / edge list in R

I am trying to find potential clusters or groups of nodes (forum messages, in this case).

In the current data, each node (message) has been tentatively grouped together with n other messages, and that group given a name. So, we know that msg ID 1 has been seen together with msg ID 3, and 7, say.

I am currently using that information to construct an edge list (if they have been grouped together, an edge exists), and then using walktrap community to produce a dendrogram.

Are there any other ways to tease out groups or clusters, given the edge list? (I am using R, but pointers to anything would be helpful).

Thanks for your time!

0 投票
4 回答
23550 浏览

mysql - 如何将 MSSQL CTE 查询转换为 MySQL?

在我的 MySQL 模式中,我有category(id, parentid, name)

在 MSSQL 中,我有那个 CTE 查询(从下往上为提供的类别 ID 构建类别树:

如何将该查询“转换”为 MySQL?

0 投票
1 回答
379 浏览

php - 如何使用for循环预览邻接列表树(非递归解决方案)

我使用邻接表方法在 MySQL 数据库中存储一棵树

当我想预览树时,PHP 从数据库中检索整个树并使用递归进行预览。

但是迭代在性能上比递归要好,所以我想使用 for 循环填充树以获得更好的性能。

我不想使用任何 MySQL 函数、方法或触发器,我只想通过使用迭代(for 循环)来填充树

0 投票
3 回答
8226 浏览

data-structures - graph - 如果我用哈希表替换邻接列表中的每个链接列表有什么缺点?

在 CLRS 消费税 22.1-8 中(我是自学,不在任何大学)

假设每个数组条目 Adj[u] 不是一个链表,而是一个哈希表,其中包含 (u,v) ∈ E 的顶点 v。如果所有边查找的可能性相同,那么确定一个边缘在图中?这个方案有什么缺点?为解决这些问题的每个边缘列表建议一个替代数据结构。与哈希表相比,您的替代方案有缺点吗?

所以,如果我用哈希表替换每个链表,就会出现以下问题:

  1. 确定一条边是否在图中的预期时间是多少?
  2. 有什么缺点?
  3. 为解决这些问题的每个边缘列表建议一个替代数据结构
  4. 与哈希表相比,您的替代方案有缺点吗?

我有以下部分答案:

  1. 我认为预期的时间是O(1),因为我只是去Hashtable t = Adj[u],然后return t.get(v);
  2. 我认为缺点是Hashtable会比链表占用更多的空间。

对于其他两个问题,我无法获得线索。

任何人都可以给我一个线索?

0 投票
2 回答
1210 浏览

php - 嵌套数组的 PHP 邻接表

我正在尝试使用 PHP 将下表数据转换为嵌套数组。我几乎完成了,但卡在了某一点上。

使用此代码

这导致以下 JSON。

我想要 JSON 喜欢的地方