首页 > 解决方案 > C++中DAG的拓扑排序;存储排序列表的数据结构?

问题描述

我在 C++ 中实现了一个有向无环图的拓扑排序,它输出一个拓扑排序列表。

我看到一些实现排序列表存储std::stackstd::vector. 我不确定哪种或其他数据结构最适合我的情况。本质上,我只需要遍历这个排序列表,并从上到下提取存储的元素。该列表在提取过程中不会被修改。

使用 astd::vector似乎是一种浪费,时间复杂性,因为每次将新元素添加到列表中时我都会重新分配向量。这个列表可能会变得非常庞大。

看来我无法std::stack根据How to traverse stack in C++进行循环?.

是否有其他选择更适合我想做的事情?

标签: c++vectordata-structuresdepth-first-searchtopological-sort

解决方案


推荐阅读