@@ -12,10 +12,8 @@ namespace gl::algorithm {
1212template <
1313 result_discriminator ResultDiscriminator = algorithm::ret,
1414 type_traits::c_graph GraphType,
15- type_traits::c_optional_vertex_callback<GraphType, void > PreVisitCallback =
16- algorithm::empty_callback,
17- type_traits::c_optional_vertex_callback<GraphType, void > PostVisitCallback =
18- algorithm::empty_callback>
15+ type_traits::c_optional_id_callback<void > PreVisitCallback = algorithm::empty_callback,
16+ type_traits::c_optional_id_callback<void > PostVisitCallback = algorithm::empty_callback>
1917impl::alg_return_type<ResultDiscriminator, predecessors_descriptor> depth_first_search (
2018 const GraphType& graph,
2119 const std::optional<types::id_type>& root_vertex_id_opt = no_root_vertex,
@@ -33,21 +31,21 @@ impl::alg_return_type<ResultDiscriminator, predecessors_descriptor> depth_first_
3331 if (root_vertex_id_opt) {
3432 impl::dfs (
3533 graph,
36- graph. get_vertex ( root_vertex_id_opt.value () ),
37- impl::default_visit_vertex_predicate<GraphType> (visited),
38- impl::default_visit_callback<GraphType, ResultDiscriminator>(visited, pd),
34+ root_vertex_id_opt.value (),
35+ impl::default_visit_vertex_predicate (visited),
36+ impl::default_visit_callback<ResultDiscriminator>(visited, pd),
3937 impl::default_enqueue_vertex_predicate<GraphType>(visited),
4038 pre_visit,
4139 post_visit
4240 );
4341 }
4442 else {
45- for (const auto & root_vertex : graph.vertices ())
43+ for (const auto root_vertex_id : graph.vertex_ids ())
4644 impl::dfs (
4745 graph,
48- root_vertex ,
49- impl::default_visit_vertex_predicate<GraphType> (visited),
50- impl::default_visit_callback<GraphType, ResultDiscriminator>(visited, pd),
46+ root_vertex_id ,
47+ impl::default_visit_vertex_predicate (visited),
48+ impl::default_visit_callback<ResultDiscriminator>(visited, pd),
5149 impl::default_enqueue_vertex_predicate<GraphType>(visited),
5250 pre_visit,
5351 post_visit
@@ -61,10 +59,8 @@ impl::alg_return_type<ResultDiscriminator, predecessors_descriptor> depth_first_
6159template <
6260 result_discriminator ResultDiscriminator = algorithm::ret,
6361 type_traits::c_graph GraphType,
64- type_traits::c_optional_vertex_callback<GraphType, void > PreVisitCallback =
65- algorithm::empty_callback,
66- type_traits::c_optional_vertex_callback<GraphType, void > PostVisitCallback =
67- algorithm::empty_callback>
62+ type_traits::c_optional_id_callback<void > PreVisitCallback = algorithm::empty_callback,
63+ type_traits::c_optional_id_callback<void > PostVisitCallback = algorithm::empty_callback>
6864impl::alg_return_type<ResultDiscriminator, predecessors_descriptor> recursive_depth_first_search (
6965 const GraphType& graph,
7066 const std::optional<types::id_type>& root_vertex_id_opt = no_root_vertex,
@@ -83,23 +79,23 @@ impl::alg_return_type<ResultDiscriminator, predecessors_descriptor> recursive_de
8379 const auto root_id = root_vertex_id_opt.value ();
8480 impl::r_dfs (
8581 graph,
86- graph.get_vertex (root_id),
8782 root_id,
88- impl::default_visit_vertex_predicate<GraphType>(visited),
89- impl::default_visit_callback<GraphType, ResultDiscriminator>(visited, pd),
83+ root_id, // pred_id
84+ impl::default_visit_vertex_predicate (visited),
85+ impl::default_visit_callback<ResultDiscriminator>(visited, pd),
9086 impl::default_enqueue_vertex_predicate<GraphType>(visited),
9187 pre_visit,
9288 post_visit
9389 );
9490 }
9591 else {
96- for (const auto & root_vertex : graph.vertices ())
92+ for (const auto & root_id : graph.vertex_ids ())
9793 impl::r_dfs (
9894 graph,
99- root_vertex ,
100- root_vertex. id (),
101- impl::default_visit_vertex_predicate<GraphType> (visited),
102- impl::default_visit_callback<GraphType, ResultDiscriminator>(visited, pd),
95+ root_id ,
96+ root_id, // pred_id
97+ impl::default_visit_vertex_predicate (visited),
98+ impl::default_visit_callback<ResultDiscriminator>(visited, pd),
10399 impl::default_enqueue_vertex_predicate<GraphType>(visited),
104100 pre_visit,
105101 post_visit
0 commit comments