1

我正在考虑一个 Emacs 应用程序,它将为 org-mode 提供基本的图形数据库功能。我想自己编写代码,一个滚动你自己的图形数据应用程序。任何人都可以指导我进行此类工作的数据结构和算法吗?我对图论知之甚少,只是基础知识。对于我的努力,我想将 org-mode 标题存储在单个 org-mode 文件中作为顶点,但也可以选择将整个 org-mode 文件存储为单个顶点。每个文件,每个标题顶点在 org-mode PROPERTIES “抽屉”中都会有一个唯一的 UUID 编号,可以理解为每个标题的结构。边缘可能是 RFD 式的——本质上是用作边缘的“谓词”顶点。做一个疯狂的猜测,我' d 说图存储为邻接列表而不是邻接矩阵?某种形式的查询也应该是可能的。

任何建议表示赞赏。

4

2 回答 2

2

So, when I do something like that in org-mode I frequently fall back to its native graphviz support.


# Toggle inline images: c-c c-x c-v
#+BEGIN_SRC dot :results output :file outfilename.png

   digraph "graphname" {

          A [label="foo"];
          B [label="bar", shape="box"];
          C [label="baz", shape="box"];

          A -> B;
          A -> C;
          C -> B;
          
   }

#+END_SRC

#+RESULTS:
[[file:outfilename.png]]

If you need a lot of data, it's not hard to convert a CSV file to a set of graphviz points.

于 2021-06-15T19:36:25.540 回答
0

我会说对我来说是一个很好的起点。很好的讨论。一张海报提到了Steven S. Skiena非常出色的《算法设计手册》 。

于 2021-06-16T16:11:00.743 回答