我有一个现有的图形,由我自己的顶点和边缘类构建,如下所示:
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数据结构之间提供合适的映射。
我将很感激一个介绍性的例子。
答案 0 :(得分:0)
让这个例子有点参与。但是,您需要为您选择的图形概念建模。
http://www.boost.org/doc/libs/1_63_0/libs/graph/doc/graph_concepts.html
我发现很难从模型中看到边缘是如何表示的(端口可以很好地断开连接,或者OutPort
可能会引用Node
等等。我觉得你可能想要模拟AdjacencyGraph。所需操作列在链接页面上。