我在C中实现了有向无环图的拓扑排序,输出了拓扑排序列表 .
我看到一些实现,其中排序列表存储在 std::stack
中,一些存储在 std::vector
中 . 我不确定哪种或其他数据结构最适合我的情况 . 基本上,我只需循环遍历此排序列表,并提取从上到下存储的元素 . 在提取过程中不会修改列表 .
使用 std::vector
似乎是浪费时间复杂度,因为每次将新元素添加到列表时我都会重新分配向量 . 这个列表可以变得非常庞大 .
根据How to traverse stack in C++?,我似乎无法循环 std::stack
.
还有其他选择更适合我想做的事情吗?