我有一个现有的图形,由我自己的顶点和边类构建,如下所示:
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 回答
举个例子就是一个例子 . 但是,您需要为您选择的图形概念建模 .
http://www.boost.org/doc/libs/1_63_0/libs/graph/doc/graph_concepts.html
我发现很难从你的模型中看到边缘是如何表示的(端口可以很好地断开连接,或者
OutPort
可以指回Node
等) . 我觉得你可能想要模拟AdjacencyGraph . 链接页面上列出了所需的操作 .