163得票11回答
在C++中解决图问题,邻接表和邻接矩阵哪个更好?

对于C ++中的图问题,邻接列表(adjacency lists)和邻接矩阵(adjacency matrix)哪个更好?它们各自的优缺点是什么?

56得票5回答
使用深度优先搜索检测图中的循环:2种不同的方法及其区别

注意,图形表示为邻接列表。我听说过有两种方法可以在图中找到循环:保留一个布尔值数组来跟踪您以前是否访问过节点。 如果您用尽了要去的新节点(没有命中已经访问过的节点),则回溯并尝试不同的分支。来自Cormen的CLRS或Skiena的方法:对于未定向图中的深度优先搜索,有两种类型的边缘,树形和反...

28得票4回答
如何将 MSSQL 的 CTE 查询转换为 MySQL?

在我的MySQL模式中,我有一个category(id, parentid, name)表。 在MSSQL中,我有这个CTE查询(从底层向上构建提供的类别ID的类别树):with CTE (id, pid, name) as ( select id, parentid as pid...

21得票2回答
如何使用PHP和MySQL将父子关系(邻接表)转换为嵌套集?

我花了几个小时在网上寻找解决这个问题的方法。我找到了很多关于如何将嵌套集转换为相邻集的例子...但很少有反向的例子。我找到的例子要么不起作用,要么使用MySQL程序。不幸的是,我不能在这个项目中使用程序。我需要一个纯PHP的解决方案。 我有一个使用下面邻接模型的表: id ...

21得票4回答
图 - 如果我用哈希表替换邻接表中的每个链表,会有什么缺点?

在 CLRS 练习 22.1-8 中(我是自学而非在任何大学学习),假设每个数组入口 Adj[u] 是一个哈希表,其中包含 (u, v) ∈ E 的顶点 v。如果所有边查找的可能性相等,那么确定边是否在图中的预期时间是多少?这种方案有什么缺点?为每个边列表建议一种替代数据结构来解决这些问题。与...

16得票2回答
从邻接表生成树形结构

我试图从一个带有父ID的扁平数组生成一个分层树形对象。// `parent` represents an ID and not the nesting level. var flat = [ { id: 1, name: "Business", parent: 0 }, { i...

15得票6回答
什么是判断有向图是否单连通的最有效方法?

我正在完成一项任务,其中一个问题要求推导出一种算法来检查有向图G=(V,E)是否为单连通(对于所有不同的顶点u,v,从u到v最多只有一条简单路径)。 当然,您可以采用暴力方式进行检查,这也是我目前正在做的事情,但我想知道是否有更有效的方法。有谁能指点我一下吗?

14得票4回答
如何从边列表创建加权邻接表/矩阵?

我的问题很简单:我需要从边的列表中创建一个邻接表/矩阵。 我在csv文件中存储了一个边列表,其中column1 = node1,column2 = node2,并且我想将其转换为加权邻接表或加权邻接矩阵。 更具体地说,数据的形式如下 - 数字仅是节点ID:node1,node2 551,5...

14得票4回答
图的实现:为什么不使用哈希?

我正在进行面试准备,复习图的实现。我经常看到的两种是邻接表和邻接矩阵。当考虑基本操作的运行时间时,为什么我从未见过使用哈希结构的数据结构? 例如,在Java中,邻接表通常是 ArrayList<LinkedList<Node>>,但为什么人们不使用 HashMap&l...

14得票2回答
在SQL中管理层次结构:MPTT/嵌套集合 vs 邻接表 vs 存储路径

最近我一直在思考如何在 SQL 中处理层次结构。由于邻接列表的限制和 MPTT/嵌套集合的复杂性,我开始考虑仅存储键路径,作为一个简单的 node_key/node_key/... 字符串。我决定总结三种技术的优缺点: 创建/删除/移动节点所需调用的次数: 邻接列表 = 1 MPTT = 3...