首页 文章

使用Boost Graph Library(BGL)和现有的图形数据结构

提问于
浏览
1

我有一个现有的图形,由我自己的顶点和边类构建,如下所示:

struct Graph;

struct OutPort {};

struct InPort { 
  OutPort* connectedOutput; 
};

struct Node { 
  Graph* graph;
  std::list<InPort> inputs;
  std::list<OutPort> outputs;
};

struct Graph {
  std::list<Node> nodes;
}

也就是说,图形由节点组成,节点具有0 .. *输入和输出端口 . 输入端口连接到任何节点(包括其自身)的0..1输出端口 .

我想将BGL算法应用于此图,但无法弄清楚如何使用上面的现有数据结构,或者在它们和BGL数据结构之间提供合适的映射 .

我将很感激一个介绍性的例子 .

1 回答

  • 0

    举个例子就是一个例子 . 但是,您需要为您选择的图形概念建模 .

    http://www.boost.org/doc/libs/1_63_0/libs/graph/doc/graph_concepts.html

    enter image description here

    我发现很难从你的模型中看到边缘是如何表示的(端口可以很好地断开连接,或者 OutPort 可以指回 Node 等) . 我觉得你可能想要模拟AdjacencyGraph . 链接页面上列出了所需的操作 .

相关问题