我刚接触c ++。我必须编写一个表示图形的c ++程序,其中节点有许多边作为输入,单边作为输出。我也应该标记它们。我觉得使用链表会帮助我但我是我认为在一个链表中我只有一条边到一个给定的节点而另一条边到达下一个节点。是否有任何可能的方法来表示从不同节点到单个节点的许多不同边。
答案 0 :(得分:0)
所以节点看起来应该是这样的:
struct Node
{
Node(std::string label_) : label(label_) {}
std::string label;
std::vector<Node*> incoming;
Node* outgoing = nullptr;
}
然后,这只是将它们连接在一起的问题。请注意,这有点像字符串的链接列表,除了“上一个”指针(incoming
)是多个而不是单数。
从这里开始,请注意您实际构建的是树(假设一个节点具有空outgoing
指针)。这可能有助于您找到可以使用的现有数据结构实现,而不是构建自己的数据结构实现。