问题标签 [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 投票
2 回答
495 浏览

sql - 如何在 SQL 中删除所有没有孩子的父母?

我有一个具有 id、名称、级别(深度)和 parrent_id 的表,有没有什么好的方法可以删除所有没有子节点的节点?(一层就够了)?我知道我可以在应用程序中做到这一点 - 加载给定级别的所有节点并检查它们是否有子节点,如果没有删除,但这可能在 SQL 中更有效,我不是 SQL 大师 :)

0 投票
2 回答
496 浏览

mysql - 将邻接表模型和嵌套集模型结合起来是否被认为是糟糕的设计?

我正在努力在 MySQL 中构建树结构,并一直在尝试不同的数据表示方式。但是,无论我怎么切,都有不足之处。

嵌套集模型允许我轻松选择树的整个分支——这是我需要做的。然而,选择节点的直接子节点并不容易。

邻接表模型非常适合获取直系孩子,但不适用于返回树的整个分支。

我想知道,构建这样的树结构有什么特别不好的地方:

所以我拥有的是邻接表模型和嵌套集模型都在同一个表中。这样我就可以使用/或,这取决于我选择的情况。

人们的想法是什么?这是允许的吗?(花生酱和巧克力终于在一起了?)或者这被认为是糟糕的设计?

提前致谢,

0 投票
7 回答
15372 浏览

algorithm - 确定有向图是否单连通的最有效方法是什么?

我正在做一项任务,其中一个问题要求派生一种算法来检查有向图 G=(V,E) 是否是单连接的(对于所有不同的顶点 u,从 u 到 v 最多有一个简单的路径, v 的 v。

当然你可以蛮力检查它,这是我现在正在做的,但我想知道是否有更有效的方法。谁能指出我正确的方向?

0 投票
1 回答
2367 浏览

php - 从存储在具有邻接列表模型的表中的数据创建无序列表树菜单...php

我需要创建“第 n 个”子类别的树形菜单。我决定为我的表结构使用邻接列表模型,因为我不会更新这个表,而且这似乎是我使用中最容易实现的。

我想使用“ul”和“li”标签对输出进行样式设置...我已经有一个 css 和 jquery 解决方案来进行样式设置。我的问题来自于从数据库中提取数据并通过 PHP 使用递归函数来构建列表......列表是一个连接字符串,它被解析以构建树。我真的很难让结束的“ul”和“li”标签排列在它们需要的位置。

这是最好的方法吗?还有其他更好的方法使用数组或类似的东西来做到这一点吗?您可以向我指出构建此类列表的“最佳实践”的任何示例将不胜感激。谢谢。

这是我的表结构:

portfolio_id (int), p_name (varchar), parent_portfolio_id (int) 这是我希望数据呈现时的样子:

这是当前的递归函数:

0 投票
1 回答
495 浏览

c++ - boost graph adjacency_list, retrieving a node's parents

I want to find in an adjacency graph from the bgl how give a Vertexdescriptor and get the set of nodes that are parents of this given node.

i would like to do this in directed graph, it seems you could use a bidirectional graph but i want to be able to restrict it so that there are no cycles.

0 投票
1 回答
682 浏览

php - 如何使用 PHP 的 SPL 从邻接列表中聚合结果

我尝试过使用嵌套集,但在处理多棵树和许多其他复杂情况时,它们变得非常难以维护。我想在这方面给 PHP 的 SPL 库一个尝试(顺便说一句,我们是 PHP 5.3,MySQL 5.1 )。

给定两个数据集:

团体:

这几项

这些数字实际上比这复杂得多(我实际上是在过去 15 年中汇总可变数量的月或年,因此可能需要 20 列汇总结果)。

编辑: @Gordon 我想有很多方法可以获取结果集。理想情况下,我希望 RecursiveIterator 的东西给我一些东西,我可以把它吐到一个包含所有业务逻辑的视图中(聚合叶节点等)已经完成..所以结果看起来像这样(注意邻接列表中的深度是任意的):

:结束编辑

我一直在试图弄清楚RecursiveIteratorIteratorAggregate,但是我很难找到足够通用的真实世界示例,以真正让我的头脑围绕这些类。

有人可以给我一个先机吗?

编辑:

这里不需要一个非常详细的解决方案。似乎不清楚我可以在哪里(如果有的话)利用 Iterator、RecursiveIterator、RecursiveIteratorIterator 等来提出一个干净、可扩展的解决方案来聚合分层数据。

:结束编辑

0 投票
2 回答
7203 浏览

c# - 从邻接表创建树的最有效方法

我有一个需要用来构建无序树的对象的邻接列表(从 SQL 数据库加载的行,带有键和它的父键)。保证没有周期。

这花费的时间太长(大约 5 分钟内仅处理了 870K 节点中的约 3K)。在具有大量 RAM 的工作站 Core 2 Duo 上运行。

关于如何加快速度的任何想法?

0 投票
2 回答
878 浏览

java - 图表示基准测试

目前正在开发一个程序,可以解决(如果可能的话)从 3X4 到 26x30 的任何给定尺寸迷宫。我使用 adj 矩阵(稀疏)和 adj 列表来表示图形。我想知道如何输出 DFS 使用一种方法和另一种方法找到解决方案所花费的总时间。以编程方式,我怎么能产生这样的基准?

0 投票
2 回答
1702 浏览

java - 邻接表创建,内存不足错误

我正在尝试创建一个邻接列表来存储图形。该实现在存储 100,000 条记录时运行良好。但是,当我尝试存储大约 100 万条记录时,我遇到了 OutofMemory 错误:

线程“主”java.lang.OutOfMemoryError 中的异常:java.io.BufferedReader 的 java.lang.String.(String.java:215) 处的 java.util.Arrays.copyOfRange(Arrays.java:3209) 处的 Java 堆空间.readLine(BufferedReader.java:331) 在 java.io.BufferedReader.readLine(BufferedReader.java:362) 在 liarliar.main(liarliar.java:39)

以下是我的实现

我想知道,是否有更好的方法来实现邻接列表。另外,我一开始就知道节点的数量,并且将来我在访问节点时会展平列表。有什么建议么 ?

谢谢

0 投票
2 回答
879 浏览

java - 数组列表空指针异常

我试图通过 DFS 解决迷宫,使用 adj List 来表示图的顶点和边。总共有 12 个节点(3 rows[A,B,C] * 4 cols[0,..,3])。我的程序首先保存所有顶点标签(A0,..C3),到目前为止一切顺利,然后检查相邻节点,也没有问题,如果可以移动,它会继续创建边,这里是哪里出错了.

我使用了调试器,发现它vList[j].label不是空的,它包含一个正确的字符串(即“B1”)。唯一显示 null 的变量是 in adjList[i],这让我相信我错误地实现了它。我就是这样做的。

如果有人能指出我在正确的轨道上重新考虑出了什么问题,我会非常感激......谢谢!