Я реализовал топологическую сортировку ориентированного ациклического графа в C ++, который выводит топологический отсортированный список.
Я вижу некоторые реализации, где отсортированный список хранится в std::stack
и некоторые в std::vector
, Я не уверен, какая или какая-то другая структура данных будет наиболее подходящей для моего случая. По сути, мне просто нужно перебрать этот отсортированный список и извлечь элементы, хранящиеся сверху вниз. Список не изменяется в процессе извлечения.
Используя std::vector
кажется бесполезной, из-за сложности со временем, так как я буду перераспределять вектор каждый раз, когда новый элемент добавляется в список. Этот список может стать довольно массовым.
Кажется, я не могу пройти через std::stack
в соответствии с Как пройти через стек в C ++?.
Есть ли другой вариант, который будет более подходящим для того, что я хочу сделать?
Задача ещё не решена.
Других решений пока нет …