问题标签 [edge-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 投票
1 回答
374 浏览

graph - 如何在两个节点之间添加第二条新边更新旧边

我所拥有的:networkX 中的多重图 H。两个节点“0”和“1”。现有边 e1=(0,1)。

我想要的是:在节点 0 和 1 之间添加第二条新边 e2。

问题:当我在 0 和 1 之间添加新边 e2 时,e1 会更新为 e2 的新值(属性),并且不会添加 e2。在 0 和 1 之间总是有一条边

我的示例代码:

如果我正确打印 HI 的所有边缘,则有:

现在我使用 key 属性向 e2=(0,1) 添加一条新边:

但是如果我打印 H 的所有边缘:

正如你所看到的,第二条边已经更新了第一条边,但是 e2 添加了一个指定的键,与 e1 不同(默认为 0)。

我怎样才能避免这个问题? 添加edge e2后我想要这个结果:

0 投票
1 回答
98 浏览

graph - 在 CLISP 中提取节点形成点列表(边)

我是 Lisp World 中的“Nil”或 ()。
我想获取边缘列表中所有节点的列表,我编写了一个代码来解决这个问题。但是我遇到了一些意想不到的问题。

(来自“Lisp 之国”的代码 - 第 8 章)

我写了一个代码来提取所有节点作为一个列表,如下所示。

我以为我的代码还不错,但结果显示给我一个尴尬的错误信息。

堆栈溢出?我认为这是由我的代码中的递归函数引起的。我怎样才能正确解决这个问题?

0 投票
3 回答
936 浏览

r - 在 R 中创建边列表

我有这样的数据:

我需要它作为这样的边缘列表:

前三个边来自 ID1,第四个来自 ID2,ID3 没有边,所以没有边,第五个来自 ID4。关于如何做到这一点的任何想法?熔化/铸造?

0 投票
2 回答
1035 浏览

graph - 边缘集合与图

我在 ArangoDB 中没有得到一件事:

边缘集合和图有什么区别?在哪些情况下我应该选择哪个?

0 投票
2 回答
168 浏览

r - 在 R 中创建带有附加变量的边列表

我有这样的数据:

我需要它作为这样的边缘:

在@akrun 的帮助下,我可以获得 V1 和 V2 列:

但是我怎么能从原始df中“带走”ID和一些其他变量(性别、年龄等)并将它们作为“节点”中的“性别”等列?

0 投票
1 回答
1511 浏览

algorithm - 最小化图中的最大距离

假设我们有一个加权无向图。假设图中有 N 个节点(城市),我们要在城市中建立 M(M<=N)家医院。现在我们需要选择最优解,使得一个城市到一个有医院的城市的最大距离最小。

假设我们有 3 个城市,我们需要建造 1 家医院。假设有边 1-3 和 2-3,权重分别为 83 和 71。显然,最佳解决方案是在城市 3 中建一所医院,因为那时最大距离将是 83。

我的想法是使用 Floyd-Warshall 算法,然后在距离数组中具有最小最大值的城市建造一家医院。然后更新另一个数组 b,使 b1 显示从城市 1 到有医院的城市的最小距离,并同时定义 bi。之后,我想像这样更新距离值:

并重复此操作,直到我们建立了所有 M 家医院。

但是在某些情况下,该算法会遇到问题。假设我们得到了这张图,我们需要建造 3 家医院:

在 Floyd-Warshall 算法之后,距离表将如下所示:

显然现在最好在 6 号城市建造一家医院,因为最大值为 6。现在更新值:

但是知道我们不知道是在城市 3 还是在城市 4 建医院。如果我们在城市 4 建医院,那么更新表格我们会得到我们需要在城市 1 建医院,最大距离为是2。

但是如果我们在 3 号城市建造一家医院并更新值,我们会得到最好在 4 号城市或 5 号城市建造一家医院。但是在这两种情况下,最大值都是 3。那么我该如何克服这个问题呢?

0 投票
1 回答
394 浏览

python-2.7 - 如何在networkx中自定义边缘?

我想在networkx中制作一些自定义边缘。这些边应该类似于下表中标记为符号的列(第 13 行除外):

在此处输入图像描述

任何人都可以提供一些关于如何构建它的线索吗?提前致谢!

更新1:看起来graphviz可以做到这一点:

graphviz 箭头形状

查找属性类型描述

但是graphviz基于C而不是python,它超出了我的知识范围。然而,networkx 可以处理 graphviz 对象。在某个地方应该有一个关于这个的文档......

0 投票
0 回答
240 浏览

graph - 通过唯一 ID 或名称查找边缘

可以通过唯一名称搜索子图和节点;

同样,有没有办法通过它们的唯一名称在严格的有向图中搜索边?

文档表明:

边的“名称”(更准确地说是标识符)被视为特定节点对之间边的唯一标识符。也就是说,在任何给定的 u 和 v 之间最多只能有一条名为 e28 的边,但在其他节点之间可以有许多其他边。

似乎必须有一个可以按名称搜索的边列表。否则,将需要单独维护一个单独的(ID -> 边缘)映射。

0 投票
0 回答
609 浏览

javascript - 在 d3.js 中标记多条边

我想在 d3 力图中标记两个节点之间的多条边。通过修改此示例(http://jsfiddle.net/7HZcR/3/),我有两条边分别显示,但与边相关的标签在一条边上重叠,而不是在自己的线上。我不知道为什么会这样。有什么想法可以解决这个问题吗?这是我的代码的相关部分:

0 投票
1 回答
1049 浏览

java - 如何通过去除边缘将一棵树一分为二?

我的目标是从给定的树 T 中删除一条边,这将导致形成两棵独立的树 T1 和 T2。

树 T 的每个顶点都被分配一个正整数。我的任务是删除一条边,以使结果树的 Tree_diff 最小化。Tree_diff 定义如下:

输入格式:

  • 第一行将包含一个整数 N,即树中的顶点数。
  • 下一行将包含由单个空格分隔的 N 个整数,即分配给每个顶点的值。
  • 接下来的 N-1 行包含一对整数,每行由一个空格分隔,表示树的边缘。

在上面的输入中,顶点的编号从 1 到 N。

输出格式:包含 Tree_diff 最小值的单行。

约束:

  • 3≤N≤105
  • 1≤每个顶点上写的数字≤1001

样本输入

样本输出

我的代码是

我的代码适用于较小的输入;对于上述输入,输出为

而预期的输出是

有什么建议么?

注意 - 这是一个家庭作业