繁体   English   中英

有向无环图的C / C ++实现

[英]C/C++ implementation of a Directed Acyclic Graph

作为新手,我正在尝试使用C(或C ++)生成DAG。

struct Node
{
    Link *incomingEdge, *outgoingEdge;
};

struct Link
{

    Node *origin, *destination;

};

仅在我的代码中,每个节点只有一个传入和传出边缘。 但是,一个节点可能具有多个入射边缘。 此外,每个节点的入射边缘数可能会发生变化。

如何为每个节点生成不同数量的指针?

假设我有;

具有5个传入边缘和4个传出边缘的nodeA。 具有3个传入边缘和6个传出边缘的nodeB。

因此每个节点的指针数量都在变化。

考虑使用指针向量

std::vector<Link *> incomingEdge;

这取决于您的需求。 该图完全由边缘描述,因此简单的答案是,从节点定义中省略*incomingEdge, *outgoingEdge 但是相邻节点的std::的链表或适当的容器对于您要实现的算法可能会更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM