javascript - 在 Javascript 中表示 DAG 的数据结构

标签 javascript graph directed-acyclic-graphs

我有一个字符串,需要使用 javascript 将其解析为图 (DAG) 数据结构。数据结构中包含一些我应该存储的属性,例如节点的 ID、名称,以及如果存在到另一个节点的链接则提供给链接的标签。所以,一个例子是

Node1 (id: 1, name: 'first') --('link name')--> Node2 (id:....)

等等。创建数据结构后,除了读取它之外,我不需要对其执行任何操作(稍后我将使用它来使用 d3 呈现可视化)。节点数量不会很多,因为有几个是共享的。

我正在想象一个邻接表,但不确定如何在 javascript 中对其进行编码。例如,我知道一个 json 对象可以有一个“字段”:“值”结构,但我可以用对象来做到这一点:[相邻对象列表]吗?

最佳答案

您可以在 json 中使用列表(数组)。例如。我可以将一个简单的有向图表示为

{
  "NodeA": {"name": "NodeA", "adjacentTo": ["NodeB", "NodeC"]},
  "NodeB": {"name": "NodeB", "adjacentTo": ["NodeC", "NodeD"]},
  "NodeC": {"name": "NodeC", "adjacentTo": ["NodeA"]},
  "NodeD": {"name": "NodeD", "adjacentTo": []}
}

这将是图表:

C
^^
| \
|  \
A -> B -> D

名称字段确实不是必需的,但您可以通过这种方式将您想要的任何属性与节点相关联。

关于javascript - 在 Javascript 中表示 DAG 的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12646560/

相关文章:

javascript - 使用javascript用换行符替换html <br>元素

c++ - 如何从阻力网络中去除循环

php - 在 PHP 中正确实现 DAG?

Julia:图遍历的正确数据结构是什么?

r - DiametermeR:如何为流程图的某些节点使用不同的颜色?

c++ - DAG 析构函数出错

javascript - OWL 轮播移动 +/- 5 张幻灯片

javascript - reactjs 通过 refs 在组件之间进行通信

javascript - 使用一个监听器而不是数百个

python - NetworkX Graph 中所有节点之间的边