20namespace sequoia::maths::graph_impl
22 template<static_network G>
struct traversal_tracking_traits<G>
24 using bitset = std::array<bool, G::order()>;
27 constexpr static bitset make_bitset(
const G&)
33 template<static_network G>
34 struct traversal_traits_base<G, traversal_flavour::breadth_first>
36 using queue_type = data_structures::static_queue<
typename G::edge_index_type, G::order()>;
39 constexpr static auto get_container_element(
const queue_type& q) {
return q.front(); }
42 template<static_network G>
43 struct traversal_traits_base<G, traversal_flavour::pseudo_depth_first>
45 using queue_type = data_structures::static_stack<
typename G::edge_index_type, G::order()>;
48 constexpr static auto get_container_element(
const queue_type& s) {
return s.top(); }
51 template<static_network G,
class Compare>
52 struct traversal_traits_base<G, traversal_flavour::priority, Compare>
54 using queue_type = data_structures::static_priority_queue<
typename G::edge_index_type, G::order(), Compare>;
57 constexpr static auto get_container_element(
const queue_type& q) {
return q.top(); }
Meta-programming urilities and underlying function for graph traversals.
A constexpr prority queue.