diff options
Diffstat (limited to 'src/support/topological_orders.cpp')
-rw-r--r-- | src/support/topological_orders.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/support/topological_orders.cpp b/src/support/topological_orders.cpp index 0536d4ed9..aeec95d18 100644 --- a/src/support/topological_orders.cpp +++ b/src/support/topological_orders.cpp @@ -78,8 +78,7 @@ TopologicalOrders::Selector::advance(TopologicalOrders& ctx) { return select(ctx); } -TopologicalOrders::TopologicalOrders( - const std::vector<std::vector<size_t>>& graph, SelectionMethod method) +TopologicalOrders::TopologicalOrders(const Graph& graph, SelectionMethod method) : graph(graph), indegrees(graph.size()), buf(graph.size()) { if (graph.size() == 0) { return; @@ -145,4 +144,16 @@ size_t TopologicalOrders::popChoice() { return choice; } +namespace TopologicalSort { + +std::vector<size_t> sort(const Graph& graph) { + return *TopologicalOrders(graph, TopologicalOrders::InPlace); +} + +std::vector<size_t> minSort(const Graph& graph) { + return *TopologicalOrders(graph, TopologicalOrders::MinHeap); +} + +} // namespace TopologicalSort + } // namespace wasm |