首页 文章
  • 1 votes
     answers
     views

    c#使用邻接列表的DFS拓扑排序有向图

    我试图在下图中完成拓扑排序(摘自Steven Skiena的算法设计手册) .Graph to be Sorted根据book的答案是H,A,B,D,E,G,I,J,C,F但我一直得到A,B,D,E,C,F,H,G,I,J . 我不明白当拓扑排序意味着具有到目标节点的有向边的起始节点应该首先出现时,H如何能够前进到前面 . 书中给出的答案是否可以实现甚至是正确的?这种图形是否可以进行拓扑排序(因...
  • 4 votes
     answers
     views

    以最佳方式存储分层数据:NoSQL或SQL

    我正在处理分层数据,就像在树结构中一样 . 我想知道将它们存储在数据库中的最佳方法是什么 . 我从MySQL的邻接列表开始 . 但随着数据的增加,性能似乎有所下降 . 我有大约20,000行存储在具有父子关系的MySQL表中,并且将来会增加 . 获取数据需要很长时间,因为我必须根据树的深度编写许多自连接 . 所以我一直在寻找存储这类数据的最佳方法 . 在同一个地方,我发现嵌套集比邻接列表更好 . ...
  • 8 votes
     answers
     views

    将邻接列表层次结构展平为所有路径的列表

    我有一个表使用Adjacency List模型存储分层信息 . (使用自引用键 - 下面的示例 . 此表可能看起来像familiar): category_id name parent ----------- -------------------- ----------- 1 ELECTRONICS NULL 2 ...
  • 4 votes
     answers
     views

    深度嵌套的子查询,用于遍历MySQL中的树

    我在我的数据库中有一个表,我使用混合嵌套集(MPTT)模型(具有 lft 和 rght 值的模型)和邻接列表模型(在每个节点上存储 parent_id )存储树结构 . my_table (id, parent_id, lft, rght, alias) 如果有人对如何利用它有一个好主意,这个问题不会留下来 . 我想将别名路径转换为特定节点 . 例如: "users.admins.ni...
  • 0 votes
     answers
     views

    在SQL Server 2008中将邻接列表表转换为MPTT

    是否有一个有用的工具或脚本资源来帮助从旧学校邻接列表转换到MPTT? 我原本以为这是一个比我过去更聪明的灵魂面临的问题,我想我先检查一下,以防他们在旅行中想出一个聪明的解决方案 - 然后开始我自己的旅程一个东西 .
  • 0 votes
     answers
     views

    Adjecency List Model或Nested Set Model,我应该使用哪种数据模型来存储我的hierarchiecal数据?

    我必须将我的Web应用程序从Twitter获取的消息存储到本地数据库中 . 存储消息的目的是我需要以分层次序显示这些消息,即用户通过我的应用程序输入的某些消息(即状态更新)是其他人的子节点(我必须将它们显示为父消息的子列表项) ) . 我应该使用哪种数据模型邻接列表模型或嵌套集模型?我必须管理四种类型的消息,每个类别中的消息可以有两个子节点 . 这里还有一个问题是,我在两种情况下都看到(实现)输入...
  • 1 votes
     answers
     views

    adjacency list vs mptt用于设计访问控制列表

    我在我的系统中设计访问控制列表 . 在那里将有一组组和帐户,如下所示 All users administrators john privilege members Peter mike 在上面的树中,“所有用户”的“管理员”权限成员都是组 . 我想创建一个树来存储上面的信息 . 在邻接列表中,遍历读取操作是昂贵的,并且...
  • 0 votes
     answers
     views

    在SQL中从邻接列表构建枚举路径

    初始方案 我的软件使用树数据结构,并将其存储在SQL中 . 我使用名为 Adjacency List 的抽象,它包含存储 ID 和 ParentID 的每一行 . ID 是主键, ParentID 是同一个表的外键 . 问题 我想"convert"我的SQL抽象到 Path Enumeration . 它由存储 ID 的每一行和存储从根到当前行的ID路径的 varchar 字...
  • 0 votes
     answers
     views

    boost graph library adjacency_list:维护EdgeList,按EdgeProperties排序

    我正在尝试在EdgeProperties上使用具有严格弱排序的std :: multiset容器来获取boost :: adacency_list的EdgeList模板参数 namespace boost { struct propOrderedMultisetS { }; template <class ValueType> struct container_gen<prop...
  • 0 votes
     answers
     views

    写入相邻列表图时出现未知错误

    我正在编写一个带加权边的相邻的基于列表的图 . 我的目标是实现一个图来测试Djikstra的最短路径算法 . 我在实现removeEdge功能时遇到了麻烦 . 我查看了构建消息,但我不知道下面的错误是什么 . 在下面这个之前有一些警告但是它们很小,因为它编译并运行正常 . c:\ program files(x86)\ codeblocks \ mingw \ bin .. \ lib \ gc...
  • 2 votes
     answers
     views

    计算boost :: graph顶点中的入边和出边数

    我有以下图表类型 typedef boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, PathVertex, PathEdge> GraphStructure; 我插入一些有向边 . 现在,对于每个顶点,我想计算边缘和边缘的数量 . 现在,我发现了m_out_edges结构 GraphStructure...
  • 0 votes
     answers
     views

    MongoDB获取项目没有孩子

    存在具有父引用(也称为邻接列表)的树结构 . MongoDB集合数据示例如下: /* 1 */ { "id" : 1, "name": "Digital Cameras", "url" : "digital-cameras", } /* 2 */ { "...
  • 0 votes
     answers
     views

    有效地初始化一个numpy稀疏矩阵

    我有一个数组,其中m行和数组作为值,它指示列的索引并且限制为大数n . 例如: Y = [[1,34,203,2032],...,[2984]] 现在我想要一种有效的方法来初始化具有维度m,n的稀疏numpy矩阵X和对应于Y的值(X [i,j] = 1,如果j在Y [i]中,否则= 0) .
  • 1 votes
     answers
     views

    adjacency_list中的常量顶点id

    我想保留adjacency_list图(以及顶点组)的顶点和边的外部属性 . 我需要能够通过其属性访问顶点 . 例如,我想迭代分配了一些权重的所有顶点,并获得它们的边缘 . 但是,我还需要将我的顶点容器设置为setS . 在此容器中,添加\删除顶点可能会使顶点描述符无效 . 问题是外部属性现在可以映射到无效的vertex_descriptors . class manage_data { ... ...
  • 1 votes
     answers
     views

    BGL:邻接列表返回描述符的错误边缘属性

    我有一个图表存储为邻接列表 . vertex属性包含一个int ID,而edge属性包含一个4x4矩阵和一个权重; 在测试用例中,图形是一个3顶点图形,边缘连接每对顶点(一个完整的图形) . 我有一个边缘描述符 PathType 的向量,表示一个路径,我正在迭代它并访问每个边缘及其属性 RelationshipEdge ,如下所示 . for(PathType::iterator pathIte...
  • 2 votes
     answers
     views

    需要提升adjacency_list帮助

    我'm trying to use Boost' s adjacency_list类型,我无法理解documentation . 假设我定义了一个名为State的类,并为美国的每个州实例化一个实例: class State { ... }; State california, oregon, nevada, arizona, hawaii, ... 我想将这些输入到boost :: adjace...
  • 100 votes
     answers
     views

    对于C中的图形问题,什么是更好的,邻接列表或邻接矩阵?

    对于C中的图形问题,什么是更好的,邻接列表或邻接矩阵?各有哪些优缺点?
  • 0 votes
     answers
     views

    在C#中实现邻接矩阵(或邻接列表)

    我在C#中制作一些简单的网络绘图软件(为了清楚起见,我将写'网络'而不是'图') . 网络最终可能在一些顶点/节点之间具有多个有向边 . 我已经为这个软件设计了如下数据结构: 每个节点和边都有一个相应的'interactible'对象,用于确定可视化和处理输入,例如针对这些可见对象的点击 . 这些对象可以存储关于我选择的相应对象的任何数量的数据,并且现在它们包含边的 endpoints ,例如...
  • 11 votes
     answers
     views

    在SQL中管理层次结构:MPTT /嵌套集与邻接列表与存储路径

    有一段时间我一直在努力解决如何最好地处理SQL中的层次结构 . 由于邻接列表的限制和MPTT /嵌套集的复杂性而感到沮丧,我开始考虑简单地存储密钥路径,作为一个简单的 node_key/node_key/... 字符串 . 我决定编译这三种技术的优点和缺点: 创建/删除/移动节点所需的呼叫数: 邻接= 1 MPTT = 3 Path = 1(用包含该路径的所有节点的新节点路径替换旧节点...
  • 2 votes
     answers
     views

    adjexncy_list,其中VertexList与vecS不同

    我有两个包含一些字段的结构:struct MyNodeData和struct MyEdgeData . 当我创建一个VertexList为vecS的图形时,访问顶点描述符等没有问题 . 例如: typedef adjacency_list<setS, vecS, undirectedS, MyNodeData, MyEdgeData> Graph; typedef Graph::ve...
  • 34 votes
     answers
     views

    使用DFS在图表中检测周期:2种不同的方法和区别

    请注意,图表表示为邻接列表 . 我听说有两种方法可以在图表中找到一个循环: 保留一个布尔值数组,以跟踪您之前是否访问过某个节点 . 如果你的新节点用完了(没有点击你已经存在的节点),那么只需回溯并尝试不同的分支 . 来自Cormen的CLRS或Skiena的那个:对于无向图中的深度优先搜索,有两种类型的边,树和背面 . 当且仅当存在后沿时,图形具有循环 . 有人可以解释图形的后边缘是什...
  • 5 votes
     answers
     views

    Boost :: graph Dijkstra和自定义对象和属性

    我想在程序的其他部分使用boost 's dijkstra algorithm (since I' m . 我遇到的问题是将自定义对象(我相信它们被称为 property )添加到 adjacency_list . 基本上我有一个自定义边缘类,它维护有关边缘和通过它连接的顶点的各种信息 . 我想使用 adjaceny_list 所需的边缘属性存储我的自定义数据对象 我已经成功实现了boost p...
  • 1 votes
     answers
     views

    如何填写加权图的邻接表?

    我正在尝试读取c中的文件并填充表示邻接列表的向量 . 该文件包含无向加权图的邻接列表表示 . 每行包含与该特定顶点相邻的节点元组以及长度那边缘 . 例如,第6行有6作为第一个条目,表示该行对应于标记为6的顶点 . 该行的下一个条目“141,8200”表示在顶点6和顶点141之间存在长度为8200的边缘该行的其余对表示与顶点6相邻的其他顶点和相应边的长度 . 文件例如: - 1 3,4 2,20 5...
  • 0 votes
     answers
     views

    通过c stl中的邻接列表正确实现图形

    我试图通过C的STL中的邻接列表来表示基本的无向图 . 这是我的代码: #include<stdio.h> #include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { int no_vertices,no_e...
  • 0 votes
     answers
     views

    从文本文件中将邻接列表读入映射

    我正在编写一个实现Dijkstra算法的程序,并决定使用 Map 对象来保存顶点( Map 键)和连接的顶点与路径距离( Map 值)配对 . 连接的顶点与坐标对之间的距离配对 . 示例文本文件输入如下: 1 2,3 3,2 2 4,4 3 2,1 4,2 5,3 4 5,2 6,1 5 6,2 6 1,9 每行中的第一个数字将作为键读入,其中坐标对将被读入初始化为保持对的向量 . 我尝试使用&...
  • 0 votes
     answers
     views

    邻接信息应该存储在图形对象中还是存储在顶点本身中?

    为了演示邻接列表的概念,我假设很容易将列表表示为列表列表并将顶点作为数字放入数组并将它们放在一个数组中,我们可以直接在图形中通过索引引用它们 . 一旦我们得到顶点的索引,我们就可以得到相应的列表数组 . 但是,对于实际对象,顶点不能仅由数组索引引用,我会假设需要创建一个单独的顶点对象 . 在这种情况下,我的问题是边缘信息应该在何处实现 . 在基于OO的编程语言(例如java)中,我看到了基于邻接列...
  • 1 votes
     answers
     views

    使用邻接矩阵或列表的图表的最小尺寸

    我一直在学习类中的图,我们刚刚讨论了邻接矩阵结构和邻接列表结构 . 我对这个要求我们推荐列表或矩阵结构的问题有点困惑: 该图有10,000个顶点和20,000,000个边,使用尽可能小的空间很重要 . 你会推荐哪种结构? 我的回答是邻接矩阵将占用更少的空间 . 我们得到了邻接列表使用 j + k 空间,邻接矩阵使用 j2 空格,其中j是顶点数,k是图中边的数量 . 我使用了先前的公式,发现矩阵...
  • 2 votes
     answers
     views

    Java - 使用Adjacency列表实现的图的节点与Ints

    我正在学习技术面试和图表对我来说很难 . 我很容易使用邻接矩阵,但与邻接列表的实现相混淆 . 问题是,我在网上看到的邻接列表的大部分实现(Example1,Example2和Example3)根本不使用节点 . 他们只使用一个整数的HashMap和LinkedLists . 这甚至是正确的吗?因为定义(Wikipedia)表示它由顶点或节点组成 . 此外,使用邻接矩阵的图的大多数实现使用节点而不是...
  • 0 votes
     answers
     views

    表示邻接矩阵/列表

    我很难想到用于表示无向图的邻接矩阵的适当数据结构 . 我希望能够从这些图中获取节点并将它们插入到数组中的随机位置,然后根据它们设法保持相邻节点分开的程度对数组进行“评分” . 即如果节点A和节点B在我的图中连接,并且阵列将它们彼此相邻放置,则1将被添加到阵列的得分中,最低得分阵列是最好的 . 那么用于表示节点集合以及集合中每个节点的相邻节点的最佳数据结构是什么?
  • 1 votes
     answers
     views

    r从邻接列表创建邻接矩阵或边缘列表

    我有一个邻接列表,我试图使其成为邻接矩阵或边缘列表 . 这是为了在从邻接矩阵或边缘列表构建的网络上进行网络分析 . 我正在使用R.邻接列表的示例如下(每行有不同的条目数,空条目为NA): [17,50,90,NA,NA; 80,67,NA,NA,NA; 33,31,32, NA,NA; 33,31,32,NA,NA; 354,56,87,97,32; ....] 我尝试使用R: Adjacenc...

热门问题