diff --git a/docs/html/search/all_17.js b/docs/html/search/all_17.js
index b3f8b341..c6c861e8 100644
--- a/docs/html/search/all_17.js
+++ b/docs/html/search/all_17.js
@@ -5,7 +5,7 @@ var searchData=
['scc_2',['scc',['../classgraph.html#a0172e168010c9ddc2e85da6aea42b23f',1,'graph::scc()'],['../classweighted__graph.html#a0a49aa40e429a2f9c13096e5d11a33e6',1,'weighted_graph::scc()']]],
['scope_3',['Scope',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2_c_o_d_e___o_f___c_o_n_d_u_c_t.html#autotoc_md4',1,'']]],
['scopedmessage_4',['ScopedMessage',['../class_catch_1_1_scoped_message.html',1,'Catch']]],
- ['search_5',['search',['../classcircular__linked__list.html#a1c978c5b99bc577c81e8d6d654a40b29',1,'circular_linked_list::search()'],['../classdoubly__linked__list.html#aca40a97ffdf597eaaf90c6a37feddbaf',1,'doubly_linked_list::search()'],['../classfrequency__list.html#a64e768e3b3bd8fcb3b00ca6020dda07a',1,'frequency_list::search()'],['../classlinked__list.html#a17a10ae353d0dc8fc7ffe309f0e68c60',1,'linked_list::search()'],['../classskip__list.html#af53fbbb2e9761d71c6d53d3969aac1c9',1,'skip_list::search()'],['../classavl__tree.html#a599641fb0e256bfa25deb206a7bf1b29',1,'avl_tree::search()'],['../classbst.html#acd2ed132fc83a3a50a4085b4b7a90f47',1,'bst::search()'],['../classinterval__tree.html#a5757bdc67f3a8a46d786676691b2d461',1,'interval_tree::search()'],['../classsplay__tree.html#ae15a430689cfc7d6f75c35f8420e36b4',1,'splay_tree::search()'],['../classtrie.html#a390f27fc19bac589b2565bdbca3c0843',1,'trie::search()'],['../classhill__climbing.html#a8b8ea4aff33c127d7de29a27e43e9680',1,'hill_climbing::search()']]],
+ ['search_5',['search',['../classcircular__linked__list.html#a1c978c5b99bc577c81e8d6d654a40b29',1,'circular_linked_list::search()'],['../classdoubly__linked__list.html#aca40a97ffdf597eaaf90c6a37feddbaf',1,'doubly_linked_list::search()'],['../classfrequency__list.html#a64e768e3b3bd8fcb3b00ca6020dda07a',1,'frequency_list::search()'],['../classlinked__list.html#a17a10ae353d0dc8fc7ffe309f0e68c60',1,'linked_list::search()'],['../classskip__list.html#af53fbbb2e9761d71c6d53d3969aac1c9',1,'skip_list::search()'],['../classavl__tree.html#a599641fb0e256bfa25deb206a7bf1b29',1,'avl_tree::search()'],['../classbst.html#acd2ed132fc83a3a50a4085b4b7a90f47',1,'bst::search()'],['../classinterval__tree.html#a5757bdc67f3a8a46d786676691b2d461',1,'interval_tree::search()'],['../classsplay__tree.html#ae15a430689cfc7d6f75c35f8420e36b4',1,'splay_tree::search()'],['../classtrie.html#a390f27fc19bac589b2565bdbca3c0843',1,'trie::search()'],['../classbest__first.html#ad26f8ac0e1c3b07108054faa049a1c58',1,'best_first::search()'],['../classhill__climbing.html#a8b8ea4aff33c127d7de29a27e43e9680',1,'hill_climbing::search()']]],
['search_20strong_20_3a_6',['Search strong :',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2avl.html#autotoc_md27',1,'<strong>search</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2bst.html#autotoc_md36',1,'<strong>search</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2circular__linked__list.html#autotoc_md46',1,'<strong>search</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2doubly__linked__list.html#autotoc_md63',1,'<strong>search</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2frequency__list.html#autotoc_md71',1,'<strong>search</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2interval__tree.html#autotoc_md97',1,'<strong>search</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2linked__list.html#autotoc_md109',1,'<strong>search</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2skip__list.html#autotoc_md117',1,'<strong>search</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2splay__tree.html#autotoc_md122',1,'<strong>search</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2trie.html#autotoc_md135',1,'<strong>search</strong>:']]],
['section_7',['Section',['../class_catch_1_1_section.html',1,'Catch']]],
['sectionendinfo_8',['SectionEndInfo',['../struct_catch_1_1_section_end_info.html',1,'Catch']]],
diff --git a/docs/html/search/all_6.js b/docs/html/search/all_6.js
index 78900e0f..9e3e383d 100644
--- a/docs/html/search/all_6.js
+++ b/docs/html/search/all_6.js
@@ -6,7 +6,7 @@ var searchData=
['a_20new_20class_20strong_3',['<strong>Creating a new Class</strong>',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2_c_o_n_t_r_i_b_u_t_e.html#autotoc_md14',1,'']]],
['accept_4',['accept',['../classdetail_1_1parser.html#ac46da3262cbe66ade670c5b4782451e6',1,'detail::parser']]],
['actual_5fobject_5fcomparator_5',['actual_object_comparator',['../structdetail_1_1actual__object__comparator.html',1,'detail']]],
- ['add_5fedge_6',['add_edge',['../classgraph.html#a3b397af35ce0c1db49a6a814e68bffc3',1,'graph::add_edge()'],['../classweighted__graph.html#ad652cc371c4ae27df7bfd45380865726',1,'weighted_graph::add_edge()'],['../classhill__climbing.html#ab246667632b06376b7397d182d9d1204',1,'hill_climbing::add_edge()']]],
+ ['add_5fedge_6',['add_edge',['../classgraph.html#a3b397af35ce0c1db49a6a814e68bffc3',1,'graph::add_edge()'],['../classweighted__graph.html#ad652cc371c4ae27df7bfd45380865726',1,'weighted_graph::add_edge()'],['../classbest__first.html#a0184eaa1f2eb8fa65a7e7f8bafc30dea',1,'best_first::add_edge()'],['../classhill__climbing.html#ab246667632b06376b7397d182d9d1204',1,'hill_climbing::add_edge()']]],
['adl_5fserializer_7',['adl_serializer',['../structadl__serializer.html',1,'']]],
['algoplus_20beta_20version_8',['Algoplus{BETA Version}',['../index.html',1,'']]],
['algoplus_20here_20a_20strong_9',['<strong>See the full documentation <a href="https://csrt-ntua.github.io/AlgoPlus/" >here</a></strong>',['../index.html#autotoc_md17',1,'']]],
diff --git a/docs/html/search/all_7.js b/docs/html/search/all_7.js
index 21e12ec2..4cd9d553 100644
--- a/docs/html/search/all_7.js
+++ b/docs/html/search/all_7.js
@@ -9,24 +9,25 @@ var searchData=
['begin_5farray_6',['begin_array',['../classdetail_1_1lexer__base.html#add65fa7a85aa15052963809fbcc04540a16c226b4425b68560fea322b46dabe01',1,'detail::lexer_base']]],
['begin_5fobject_7',['begin_object',['../classdetail_1_1lexer__base.html#add65fa7a85aa15052963809fbcc04540a9a9ffd53b6869d4eca271b1ed5b57fe8',1,'detail::lexer_base']]],
['bellman_5fford_8',['bellman_ford',['../classweighted__graph.html#abc8468ebe6d73b583b3bb1876f3b0747',1,'weighted_graph']]],
- ['beta_20version_9',['Algoplus{BETA Version}',['../index.html',1,'']]],
- ['bfs_10',['bfs',['../classgraph.html#a3cc331d692642bfdee0f8bcf87071176',1,'graph::bfs()'],['../classweighted__graph.html#a5407df31013d7d9d1bd5cbfa63082404',1,'weighted_graph::bfs()']]],
- ['bfs_20strong_20_3a_11',['<strong>BFS</strong>:',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2graph.html#autotoc_md78',1,'']]],
- ['binary_12',['binary',['../structjson__sax.html#a15d6c5d0dcaceb906405f427faf9b34e',1,'json_sax::binary()'],['../classbasic__json.html#a743ac3bcbc4b0f7897244d4cea387eee',1,'basic_json::binary(const typename binary_t::container_type &init)'],['../classbasic__json.html#a45e65e73d9ecf780537d632372fa2c51',1,'basic_json::binary(const typename binary_t::container_type &init, typename binary_t::subtype_type subtype)'],['../classbasic__json.html#a5af2196a9acde33f742ef054e7c2109c',1,'basic_json::binary(typename binary_t::container_type &&init)'],['../classbasic__json.html#ac00a2a38929ce21eae65f9dd09b03ce3',1,'basic_json::binary(typename binary_t::container_type &&init, typename binary_t::subtype_type subtype)'],['../namespacedetail.html#a917c3efabea8a20dc72d9ae2c673d632a9d7183f16acce70658f686ae7f1a4d20',1,'detail::binary']]],
- ['binary_5freader_13',['binary_reader',['../classdetail_1_1binary__reader.html',1,'detail::binary_reader< BasicJsonType, InputAdapterType, SAX >'],['../classdetail_1_1binary__reader.html#a5dc3e9216177efe30686876d3faccf52',1,'detail::binary_reader::binary_reader()']]],
- ['binary_5ft_14',['binary_t',['../classbasic__json.html#a4c1b5ea434b48cf31097617bb1c1ca1e',1,'basic_json']]],
- ['binary_5fwriter_15',['binary_writer',['../classdetail_1_1binary__writer.html',1,'detail::binary_writer< BasicJsonType, CharType >'],['../classdetail_1_1binary__writer.html#a5b4f1bfcd0f3f7b57060c059e008c45b',1,'detail::binary_writer::binary_writer()']]],
- ['binaryexpr_16',['BinaryExpr',['../class_catch_1_1_binary_expr.html',1,'Catch']]],
- ['bipartite_17',['bipartite',['../classgraph.html#a24409517a5d6bd3689a11ce1ec18eaab',1,'graph::bipartite()'],['../classweighted__graph.html#a3400015dc6c8bd365042d4fbc48017ce',1,'weighted_graph::bipartite()']]],
- ['bipartite_20strong_20_3a_18',['<strong>bipartite</strong>:',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2graph.html#autotoc_md82',1,'']]],
- ['boolean_19',['boolean',['../structjson__sax.html#ab89f75382c0fd7fe81c95fc84cfa3150',1,'json_sax::boolean()'],['../namespacedetail.html#a917c3efabea8a20dc72d9ae2c673d632a84e2c64f38f78ba3ea5c905ab5a2da27',1,'detail::boolean']]],
- ['boolean_5ft_20',['boolean_t',['../classbasic__json.html#a9301890c48e9b957edc07f9eb767bd10',1,'basic_json']]],
- ['boundaries_21',['boundaries',['../structdetail_1_1dtoa__impl_1_1boundaries.html',1,'detail::dtoa_impl']]],
- ['bridge_22',['bridge',['../classgraph.html#a3db835fe4f1f0ef665e1ad1251493879',1,'graph::bridge()'],['../classweighted__graph.html#a3dd0f3f2729700069a1a6f8e28681b9e',1,'weighted_graph::bridge()']]],
- ['bridge_20strong_20_3a_23',['<strong>bridge</strong>:',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2graph.html#autotoc_md83',1,'']]],
- ['bst_24',['bst',['../classbst.html',1,'bst< T >'],['../classbst.html#a6f3db633f32d9c984357adaf2aa1ea14',1,'bst::bst(std::vector< T > __elements={}) noexcept'],['../classbst.html#a7461a2607495eab0f2621708b554e926',1,'bst::bst(const bst &b)']]],
- ['bst_20class_25',['Mini Tutorial for the BST class',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2bst.html',1,'']]],
- ['bug_20strong_26',['<strong>Fixing a bug</strong>',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2_c_o_n_t_r_i_b_u_t_e.html#autotoc_md15',1,'']]],
- ['byte_27',['byte',['../classdetail_1_1parse__error.html#a5bce7d135aa3a38d1d3f4ed7bf8615e1',1,'detail::parse_error']]],
- ['byte_5fcontainer_5fwith_5fsubtype_28',['byte_container_with_subtype',['../classbyte__container__with__subtype.html',1,'byte_container_with_subtype< BinaryType >'],['../classbyte__container__with__subtype.html#a17bc4a2dabb6c7a5ec2cba3f3aaf0431',1,'byte_container_with_subtype::byte_container_with_subtype() noexcept(noexcept(container_type()))'],['../classbyte__container__with__subtype.html#a7f9fb60d4a835e97fbf1c2de7fa382e2',1,'byte_container_with_subtype::byte_container_with_subtype(const container_type &b) noexcept(noexcept(container_type(b)))'],['../classbyte__container__with__subtype.html#a42b8b66b00eb5c0057d4420e196dadf0',1,'byte_container_with_subtype::byte_container_with_subtype(container_type &&b) noexcept(noexcept(container_type(std::move(b))))'],['../classbyte__container__with__subtype.html#a759c6a582dd0684adf7fb9641ef586a4',1,'byte_container_with_subtype::byte_container_with_subtype(const container_type &b, subtype_type subtype_) noexcept(noexcept(container_type(b)))'],['../classbyte__container__with__subtype.html#a3b43bde08a4bff8917bcfad01d9e6089',1,'byte_container_with_subtype::byte_container_with_subtype(container_type &&b, subtype_type subtype_) noexcept(noexcept(container_type(std::move(b))))']]]
+ ['best_5ffirst_9',['best_first',['../classbest__first.html',1,'best_first< T >'],['../classbest__first.html#a0aba60a905eddbc5326e3b1f9bfe0d0f',1,'best_first::best_first()']]],
+ ['beta_20version_10',['Algoplus{BETA Version}',['../index.html',1,'']]],
+ ['bfs_11',['bfs',['../classgraph.html#a3cc331d692642bfdee0f8bcf87071176',1,'graph::bfs()'],['../classweighted__graph.html#a5407df31013d7d9d1bd5cbfa63082404',1,'weighted_graph::bfs()']]],
+ ['bfs_20strong_20_3a_12',['<strong>BFS</strong>:',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2graph.html#autotoc_md78',1,'']]],
+ ['binary_13',['binary',['../structjson__sax.html#a15d6c5d0dcaceb906405f427faf9b34e',1,'json_sax::binary()'],['../classbasic__json.html#a743ac3bcbc4b0f7897244d4cea387eee',1,'basic_json::binary(const typename binary_t::container_type &init)'],['../classbasic__json.html#a45e65e73d9ecf780537d632372fa2c51',1,'basic_json::binary(const typename binary_t::container_type &init, typename binary_t::subtype_type subtype)'],['../classbasic__json.html#a5af2196a9acde33f742ef054e7c2109c',1,'basic_json::binary(typename binary_t::container_type &&init)'],['../classbasic__json.html#ac00a2a38929ce21eae65f9dd09b03ce3',1,'basic_json::binary(typename binary_t::container_type &&init, typename binary_t::subtype_type subtype)'],['../namespacedetail.html#a917c3efabea8a20dc72d9ae2c673d632a9d7183f16acce70658f686ae7f1a4d20',1,'detail::binary']]],
+ ['binary_5freader_14',['binary_reader',['../classdetail_1_1binary__reader.html',1,'detail::binary_reader< BasicJsonType, InputAdapterType, SAX >'],['../classdetail_1_1binary__reader.html#a5dc3e9216177efe30686876d3faccf52',1,'detail::binary_reader::binary_reader()']]],
+ ['binary_5ft_15',['binary_t',['../classbasic__json.html#a4c1b5ea434b48cf31097617bb1c1ca1e',1,'basic_json']]],
+ ['binary_5fwriter_16',['binary_writer',['../classdetail_1_1binary__writer.html',1,'detail::binary_writer< BasicJsonType, CharType >'],['../classdetail_1_1binary__writer.html#a5b4f1bfcd0f3f7b57060c059e008c45b',1,'detail::binary_writer::binary_writer()']]],
+ ['binaryexpr_17',['BinaryExpr',['../class_catch_1_1_binary_expr.html',1,'Catch']]],
+ ['bipartite_18',['bipartite',['../classgraph.html#a24409517a5d6bd3689a11ce1ec18eaab',1,'graph::bipartite()'],['../classweighted__graph.html#a3400015dc6c8bd365042d4fbc48017ce',1,'weighted_graph::bipartite()']]],
+ ['bipartite_20strong_20_3a_19',['<strong>bipartite</strong>:',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2graph.html#autotoc_md82',1,'']]],
+ ['boolean_20',['boolean',['../structjson__sax.html#ab89f75382c0fd7fe81c95fc84cfa3150',1,'json_sax::boolean()'],['../namespacedetail.html#a917c3efabea8a20dc72d9ae2c673d632a84e2c64f38f78ba3ea5c905ab5a2da27',1,'detail::boolean']]],
+ ['boolean_5ft_21',['boolean_t',['../classbasic__json.html#a9301890c48e9b957edc07f9eb767bd10',1,'basic_json']]],
+ ['boundaries_22',['boundaries',['../structdetail_1_1dtoa__impl_1_1boundaries.html',1,'detail::dtoa_impl']]],
+ ['bridge_23',['bridge',['../classgraph.html#a3db835fe4f1f0ef665e1ad1251493879',1,'graph::bridge()'],['../classweighted__graph.html#a3dd0f3f2729700069a1a6f8e28681b9e',1,'weighted_graph::bridge()']]],
+ ['bridge_20strong_20_3a_24',['<strong>bridge</strong>:',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2graph.html#autotoc_md83',1,'']]],
+ ['bst_25',['bst',['../classbst.html',1,'bst< T >'],['../classbst.html#a6f3db633f32d9c984357adaf2aa1ea14',1,'bst::bst(std::vector< T > __elements={}) noexcept'],['../classbst.html#a7461a2607495eab0f2621708b554e926',1,'bst::bst(const bst &b)']]],
+ ['bst_20class_26',['Mini Tutorial for the BST class',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2bst.html',1,'']]],
+ ['bug_20strong_27',['<strong>Fixing a bug</strong>',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2_c_o_n_t_r_i_b_u_t_e.html#autotoc_md15',1,'']]],
+ ['byte_28',['byte',['../classdetail_1_1parse__error.html#a5bce7d135aa3a38d1d3f4ed7bf8615e1',1,'detail::parse_error']]],
+ ['byte_5fcontainer_5fwith_5fsubtype_29',['byte_container_with_subtype',['../classbyte__container__with__subtype.html',1,'byte_container_with_subtype< BinaryType >'],['../classbyte__container__with__subtype.html#a17bc4a2dabb6c7a5ec2cba3f3aaf0431',1,'byte_container_with_subtype::byte_container_with_subtype() noexcept(noexcept(container_type()))'],['../classbyte__container__with__subtype.html#a7f9fb60d4a835e97fbf1c2de7fa382e2',1,'byte_container_with_subtype::byte_container_with_subtype(const container_type &b) noexcept(noexcept(container_type(b)))'],['../classbyte__container__with__subtype.html#a42b8b66b00eb5c0057d4420e196dadf0',1,'byte_container_with_subtype::byte_container_with_subtype(container_type &&b) noexcept(noexcept(container_type(std::move(b))))'],['../classbyte__container__with__subtype.html#a759c6a582dd0684adf7fb9641ef586a4',1,'byte_container_with_subtype::byte_container_with_subtype(const container_type &b, subtype_type subtype_) noexcept(noexcept(container_type(b)))'],['../classbyte__container__with__subtype.html#a3b43bde08a4bff8917bcfad01d9e6089',1,'byte_container_with_subtype::byte_container_with_subtype(container_type &&b, subtype_type subtype_) noexcept(noexcept(container_type(std::move(b))))']]]
];
diff --git a/docs/html/search/all_d.js b/docs/html/search/all_d.js
index acbcf04e..00ca91c8 100644
--- a/docs/html/search/all_d.js
+++ b/docs/html/search/all_d.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['has_5fedge_0',['has_edge',['../classgraph.html#a4d434612e87f3e4a5f10c653167da8df',1,'graph::has_edge()'],['../classweighted__graph.html#a47d3931f45d5cc56894589b048e695dc',1,'weighted_graph::has_edge()'],['../classhill__climbing.html#a1ad9ae87f47b2c51afb0c4f5f76f86ba',1,'hill_climbing::has_edge()']]],
+ ['has_5fedge_0',['has_edge',['../classgraph.html#a4d434612e87f3e4a5f10c653167da8df',1,'graph::has_edge()'],['../classweighted__graph.html#a47d3931f45d5cc56894589b048e695dc',1,'weighted_graph::has_edge()'],['../classbest__first.html#a500d360531f7f47a8cc5962d47dc41c4',1,'best_first::has_edge()'],['../classhill__climbing.html#a1ad9ae87f47b2c51afb0c4f5f76f86ba',1,'hill_climbing::has_edge()']]],
['has_5ffrom_5fjson_1',['has_from_json',['../structdetail_1_1has__from__json.html',1,'detail']]],
['has_5ffrom_5fjson_3c_20basicjsontype_2c_20t_2c_20enable_5fif_5ft_3c_20_21is_5fbasic_5fjson_3c_20t_20_3e_3a_3avalue_20_3e_20_3e_2',['has_from_json< BasicJsonType, T, enable_if_t< !is_basic_json< T >::value > >',['../structdetail_1_1has__from__json_3_01_basic_json_type_00_01_t_00_01enable__if__t_3_01_9is__basic_fce8b8f93d45fb838eee91b696633019.html',1,'detail']]],
['has_5fkey_5fcompare_3',['has_key_compare',['../structdetail_1_1has__key__compare.html',1,'detail']]],
diff --git a/docs/html/search/all_e.js b/docs/html/search/all_e.js
index 27af1e34..9af10afb 100644
--- a/docs/html/search/all_e.js
+++ b/docs/html/search/all_e.js
@@ -27,7 +27,7 @@ var searchData=
['insert_24',['insert',['../classhash__table.html#a075f7fb9d5f95b828e044dc49e6386ba',1,'hash_table::insert()'],['../classmin__heap.html#a65ea47fb7a47b6db35cfc02a0d1f95be',1,'min_heap::insert()'],['../classskip__list.html#ad7a2f526cda9ab87d50b9e745222ae98',1,'skip_list::insert()'],['../classavl__tree.html#acdeb1d0610c350618d64fdb69f50ab08',1,'avl_tree::insert()'],['../classbst.html#ad7def8a09da61a43c7033365ea226d06',1,'bst::insert()'],['../classinterval__tree.html#aa850e677df1d50f7fa3b4e2a5c8cd2b2',1,'interval_tree::insert()'],['../classsplay__tree.html#a28eea5f755129c69077896c03bb0406e',1,'splay_tree::insert()'],['../classtrie.html#adb61c311b6d076114a48194cbf7e4822',1,'trie::insert()'],['../classbasic__json.html#a7f3817060c2bec896a99cb2c236b9c27',1,'basic_json::insert(const_iterator pos, const basic_json &val)'],['../classbasic__json.html#ae5da62116a40a0f86e87f11fdd54e9f0',1,'basic_json::insert(const_iterator pos, basic_json &&val)'],['../classbasic__json.html#a47b623200562da188886a385c716d101',1,'basic_json::insert(const_iterator pos, size_type cnt, const basic_json &val)'],['../classbasic__json.html#a68e1707248a00a2608a304da5ae5c911',1,'basic_json::insert(const_iterator pos, const_iterator first, const_iterator last)'],['../classbasic__json.html#abdfee6a3db80431a24c68bfaf038c47d',1,'basic_json::insert(const_iterator pos, initializer_list_t ilist)'],['../classbasic__json.html#aaf55c485c75ddd7bd5f9791e59d3aec7',1,'basic_json::insert(const_iterator first, const_iterator last)']]],
['insert_20strong_20_3a_25',['Insert strong :',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2avl.html#autotoc_md25',1,'<strong>insert</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2bst.html#autotoc_md34',1,'<strong>insert</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2hash__table.html#autotoc_md91',1,'<strong>insert</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2interval__tree.html#autotoc_md96',1,'<strong>insert</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2skip__list.html#autotoc_md115',1,'<strong>insert</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2splay__tree.html#autotoc_md120',1,'<strong>insert</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2trie.html#autotoc_md134',1,'<strong>insert</strong>:']]],
['insert_5fiterator_26',['insert_iterator',['../classbasic__json.html#af8c5ca19d22a32054452470669c43bb9',1,'basic_json']]],
- ['insert_5fnode_27',['insert_node',['../classhill__climbing.html#ac30264fd6f3b64003211c7379935199e',1,'hill_climbing']]],
+ ['insert_5fnode_27',['insert_node',['../classbest__first.html#ac6a039d4c6f83eb9707c774a325a0573',1,'best_first::insert_node()'],['../classhill__climbing.html#ac30264fd6f3b64003211c7379935199e',1,'hill_climbing::insert_node()']]],
['instance_20of_20the_20hash_5ftable_3a_20strong_20_3a_28',['<strong>Create an instance of the hash_table:</strong>:',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2hash__table.html#autotoc_md90',1,'']]],
['integer_5fsequence_29',['integer_sequence',['../structdetail_1_1integer__sequence.html',1,'detail']]],
['internal_5fiterator_30',['internal_iterator',['../structdetail_1_1internal__iterator.html',1,'detail']]],
@@ -126,24 +126,25 @@ var searchData=
['iter_5fimpl_123',['iter_impl',['../classdetail_1_1iter__impl.html',1,'detail::iter_impl< BasicJsonType >'],['../classdetail_1_1iter__impl.html#a21ce449bdce08e15eaf8333322a81039',1,'detail::iter_impl::iter_impl(pointer object) noexcept'],['../classdetail_1_1iter__impl.html#af8d8847a82d9dab28bd4650ed13a7c90',1,'detail::iter_impl::iter_impl(const iter_impl< const BasicJsonType > &other) noexcept'],['../classdetail_1_1iter__impl.html#a26079f33eb8a16683577cf3782558f26',1,'detail::iter_impl::iter_impl(const iter_impl< typename std::remove_const< BasicJsonType >::type > &other) noexcept']]],
['iteration_5fproxy_124',['iteration_proxy',['../classdetail_1_1iteration__proxy.html',1,'detail::iteration_proxy< IteratorType >'],['../classdetail_1_1iteration__proxy.html#abc711365efc12210a983fba0e39b5811',1,'detail::iteration_proxy::iteration_proxy()']]],
['iteration_5fproxy_5fvalue_125',['iteration_proxy_value',['../classdetail_1_1iteration__proxy__value.html',1,'detail']]],
- ['iterator_126',['Iterator',['../classavl__tree_1_1_iterator.html',1,'avl_tree< T >::Iterator'],['../classbst_1_1_iterator.html',1,'bst< T >::Iterator'],['../classcircular__linked__list_1_1_iterator.html',1,'circular_linked_list< T >::Iterator'],['../classdequeue__list_1_1_iterator.html',1,'dequeue_list< T >::Iterator'],['../classdoubly__linked__list_1_1_iterator.html',1,'doubly_linked_list< T >::Iterator'],['../classfrequency__list_1_1_iterator.html',1,'frequency_list< T >::Iterator'],['../classhash__table_1_1_iterator.html',1,'hash_table< KeyType, ValueType >::Iterator'],['../classinterval__tree_1_1_iterator.html',1,'interval_tree< T >::Iterator'],['../classlinked__list_1_1_iterator.html',1,'linked_list< T >::Iterator'],['../class_mat1d_1_1_iterator.html',1,'Mat1d< T, SIZE >::Iterator'],['../class_mat2d_1_1_iterator.html',1,'Mat2d< T, ROWS, COLS >::Iterator'],['../classskip__list_1_1_iterator.html',1,'skip_list< T >::Iterator'],['../classsplay__tree_1_1_iterator.html',1,'splay_tree< T >::Iterator'],['../classstack__list_1_1_iterator.html',1,'stack_list< T >::Iterator'],['../classhash__table_1_1_iterator.html#afbde1ab0f49c3b29ebe37d78403beea0',1,'hash_table::Iterator::Iterator()'],['../classcircular__linked__list_1_1_iterator.html#a56a79c0ca0b2174983bcb4824ccd2282',1,'circular_linked_list::Iterator::Iterator()'],['../classdoubly__linked__list_1_1_iterator.html#a63e1bde682034183631fa7e47875bbd9',1,'doubly_linked_list::Iterator::Iterator()'],['../classfrequency__list_1_1_iterator.html#a55735e7fe8761650aa778d2c5dbf3c9c',1,'frequency_list::Iterator::Iterator()'],['../classlinked__list_1_1_iterator.html#a32a5cea122f0f7fa21ffdc4f391610af',1,'linked_list::Iterator::Iterator()'],['../classskip__list_1_1_iterator.html#a9f01da3830d0f8ce18a34b7460b08ca9',1,'skip_list::Iterator::Iterator()'],['../classdequeue__list_1_1_iterator.html#a89fdc9c2b5a9df25aa5e13b985a6fff2',1,'dequeue_list::Iterator::Iterator()'],['../classstack__list_1_1_iterator.html#a81854ce2874a2a5f5d4f3636d5b26cce',1,'stack_list::Iterator::Iterator()'],['../classavl__tree_1_1_iterator.html#a0ba2c42320c63a8379610c51c3c5a600',1,'avl_tree::Iterator::Iterator()'],['../classbst_1_1_iterator.html#a9b491f04f98b75964a67795982d14d74',1,'bst::Iterator::Iterator()'],['../classinterval__tree_1_1_iterator.html#a59f640ae5fcfdba2490972d4a2fbe241',1,'interval_tree::Iterator::Iterator()'],['../classsplay__tree_1_1_iterator.html#afc9327f8cb72ba7c6947aca4dbcb5d72',1,'splay_tree::Iterator::Iterator()'],['../class_mat1d_1_1_iterator.html#a7f548b32a4b22c33e24ed33481067b2d',1,'Mat1d::Iterator::Iterator()'],['../class_mat2d_1_1_iterator.html#a4f9c6a6e209acbf79167c645e872ba16',1,'Mat2d::Iterator::Iterator()']]],
+ ['iterator_126',['Iterator',['../classavl__tree_1_1_iterator.html',1,'avl_tree< T >::Iterator'],['../classbst_1_1_iterator.html',1,'bst< T >::Iterator'],['../classcircular__linked__list_1_1_iterator.html',1,'circular_linked_list< T >::Iterator'],['../classdequeue__list_1_1_iterator.html',1,'dequeue_list< T >::Iterator'],['../classdoubly__linked__list_1_1_iterator.html',1,'doubly_linked_list< T >::Iterator'],['../classfrequency__list_1_1_iterator.html',1,'frequency_list< T >::Iterator'],['../classhash__table_1_1_iterator.html',1,'hash_table< KeyType, ValueType >::Iterator'],['../classinterval__tree_1_1_iterator.html',1,'interval_tree< T >::Iterator'],['../classlinked__list_1_1_iterator.html',1,'linked_list< T >::Iterator'],['../class_mat1d_1_1_iterator.html',1,'Mat1d< T, SIZE >::Iterator'],['../class_mat2d_1_1_iterator.html',1,'Mat2d< T, ROWS, COLS >::Iterator'],['../classskip__list_1_1_iterator.html',1,'skip_list< T >::Iterator'],['../classsplay__tree_1_1_iterator.html',1,'splay_tree< T >::Iterator'],['../classstack__list_1_1_iterator.html',1,'stack_list< T >::Iterator']]],
['iterator_127',['iterator',['../classbasic__json.html#ae206a491161d043f8efaa1330f1ccf97',1,'basic_json']]],
- ['iterator_20strong_128',['<strong>Iterator</strong>',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2frequency__list.html#autotoc_md75',1,'']]],
- ['iterator_20strong_20_3a_129',['Iterator strong :',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2avl.html#autotoc_md32',1,'<strong>iterator</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2bst.html#autotoc_md40',1,'<strong>iterator</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2dequeue.html#autotoc_md58',1,'<strong>iterator</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2hash__table.html#autotoc_md94',1,'<strong>iterator</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2interval__tree.html#autotoc_md104',1,'<strong>iterator</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2skip__list.html#autotoc_md118',1,'<strong>iterator</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2splay__tree.html#autotoc_md126',1,'<strong>iterator</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2stack.html#autotoc_md132',1,'<strong>iterator</strong>:']]],
- ['iterator_5fcategory_130',['iterator_category',['../classdetail_1_1iter__impl.html#a8fa317aaddc3dc7c58264e52e295c43e',1,'detail::iter_impl']]],
- ['iterator_5finput_5fadapter_131',['iterator_input_adapter',['../classdetail_1_1iterator__input__adapter.html',1,'detail']]],
- ['iterator_5finput_5fadapter_5ffactory_132',['iterator_input_adapter_factory',['../structdetail_1_1iterator__input__adapter__factory.html',1,'detail']]],
- ['iterator_5finput_5fadapter_5ffactory_3c_20iteratortype_2c_20enable_5fif_5ft_3c_20is_5fiterator_5fof_5fmultibyte_3c_20iteratortype_20_3e_3a_3avalue_20_3e_20_3e_133',['iterator_input_adapter_factory< IteratorType, enable_if_t< is_iterator_of_multibyte< IteratorType >::value > >',['../structdetail_1_1iterator__input__adapter__factory_3_01_iterator_type_00_01enable__if__t_3_01is__5cecb9bc5a87721b11b4762b91835d89.html',1,'detail']]],
- ['iterator_5ftraits_134',['iterator_traits',['../structdetail_1_1iterator__traits.html',1,'detail']]],
- ['iterator_5ftraits_3c_20t_20_2a_2c_20enable_5fif_5ft_3c_20std_3a_3ais_5fobject_3c_20t_20_3e_3a_3avalue_20_3e_20_3e_135',['iterator_traits< T *, enable_if_t< std::is_object< T >::value > >',['../structdetail_1_1iterator__traits_3_01_t_01_5_00_01enable__if__t_3_01std_1_1is__object_3_01_t_01_4_1_1value_01_4_01_4.html',1,'detail']]],
- ['iterator_5ftraits_3c_20t_2c_20enable_5fif_5ft_3c_20_21std_3a_3ais_5fpointer_3c_20t_20_3e_3a_3avalue_20_3e_20_3e_136',['iterator_traits< T, enable_if_t< !std::is_pointer< T >::value > >',['../structdetail_1_1iterator__traits_3_01_t_00_01enable__if__t_3_01_9std_1_1is__pointer_3_01_t_01_4_1_1value_01_4_01_4.html',1,'detail']]],
- ['iterator_5ftypes_137',['iterator_types',['../structdetail_1_1iterator__types.html',1,'detail']]],
- ['iterator_5ftypes_3c_20it_2c_20void_5ft_3c_20typename_20it_3a_3adifference_5ftype_2c_20typename_20it_3a_3avalue_5ftype_2c_20typename_20it_3a_3apointer_2c_20typename_20it_3a_3areference_2c_20typename_20it_3a_3aiterator_5fcategory_20_3e_20_3e_138',['iterator_types< It, void_t< typename It::difference_type, typename It::value_type, typename It::pointer, typename It::reference, typename It::iterator_category > >',['../structdetail_1_1iterator__types_3_01_it_00_01void__t_3_01typename_01_it_1_1difference__type_00_064dac4a14931e9e3b7bc8e1311de4a39.html',1,'detail']]],
- ['iterator_5ftypes_3c_20t_20_3e_139',['iterator_types< T >',['../structdetail_1_1iterator__types.html',1,'detail']]],
- ['iterator_5fwrapper_140',['iterator_wrapper',['../classbasic__json.html#ab8b4e0acdea49e5f0a77abdf1ce465d2',1,'basic_json::iterator_wrapper(reference ref) noexcept'],['../classbasic__json.html#a7c0314258e5347eade0c6851017bf5a5',1,'basic_json::iterator_wrapper(const_reference ref) noexcept']]],
- ['iteratorgenerator_141',['IteratorGenerator',['../class_catch_1_1_generators_1_1_iterator_generator.html',1,'Catch::Generators']]],
- ['iterators_20strong_20_3a_142',['Iterators strong :',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2circular__linked__list.html#autotoc_md49',1,'<strong>iterators</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2doubly__linked__list.html#autotoc_md66',1,'<strong>iterators</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2linked__list.html#autotoc_md112',1,'<strong>iterators</strong>:']]],
- ['itestcaseregistry_143',['ITestCaseRegistry',['../struct_catch_1_1_i_test_case_registry.html',1,'Catch']]],
- ['itestinvoker_144',['ITestInvoker',['../struct_catch_1_1_i_test_invoker.html',1,'Catch']]],
- ['itransientexpression_145',['ITransientExpression',['../struct_catch_1_1_i_transient_expression.html',1,'Catch']]]
+ ['iterator_128',['Iterator',['../classhash__table_1_1_iterator.html#afbde1ab0f49c3b29ebe37d78403beea0',1,'hash_table::Iterator::Iterator()'],['../classcircular__linked__list_1_1_iterator.html#a56a79c0ca0b2174983bcb4824ccd2282',1,'circular_linked_list::Iterator::Iterator()'],['../classdoubly__linked__list_1_1_iterator.html#a63e1bde682034183631fa7e47875bbd9',1,'doubly_linked_list::Iterator::Iterator()'],['../classfrequency__list_1_1_iterator.html#a55735e7fe8761650aa778d2c5dbf3c9c',1,'frequency_list::Iterator::Iterator()'],['../classlinked__list_1_1_iterator.html#a32a5cea122f0f7fa21ffdc4f391610af',1,'linked_list::Iterator::Iterator()'],['../classskip__list_1_1_iterator.html#a9f01da3830d0f8ce18a34b7460b08ca9',1,'skip_list::Iterator::Iterator()'],['../classdequeue__list_1_1_iterator.html#a89fdc9c2b5a9df25aa5e13b985a6fff2',1,'dequeue_list::Iterator::Iterator()'],['../classstack__list_1_1_iterator.html#a81854ce2874a2a5f5d4f3636d5b26cce',1,'stack_list::Iterator::Iterator()'],['../classavl__tree_1_1_iterator.html#a0ba2c42320c63a8379610c51c3c5a600',1,'avl_tree::Iterator::Iterator()'],['../classbst_1_1_iterator.html#a9b491f04f98b75964a67795982d14d74',1,'bst::Iterator::Iterator()'],['../classinterval__tree_1_1_iterator.html#a59f640ae5fcfdba2490972d4a2fbe241',1,'interval_tree::Iterator::Iterator()'],['../classsplay__tree_1_1_iterator.html#afc9327f8cb72ba7c6947aca4dbcb5d72',1,'splay_tree::Iterator::Iterator()'],['../class_mat1d_1_1_iterator.html#a7f548b32a4b22c33e24ed33481067b2d',1,'Mat1d::Iterator::Iterator()'],['../class_mat2d_1_1_iterator.html#a4f9c6a6e209acbf79167c645e872ba16',1,'Mat2d::Iterator::Iterator()']]],
+ ['iterator_20strong_129',['<strong>Iterator</strong>',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2frequency__list.html#autotoc_md75',1,'']]],
+ ['iterator_20strong_20_3a_130',['Iterator strong :',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2avl.html#autotoc_md32',1,'<strong>iterator</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2bst.html#autotoc_md40',1,'<strong>iterator</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2dequeue.html#autotoc_md58',1,'<strong>iterator</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2hash__table.html#autotoc_md94',1,'<strong>iterator</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2interval__tree.html#autotoc_md104',1,'<strong>iterator</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2skip__list.html#autotoc_md118',1,'<strong>iterator</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2splay__tree.html#autotoc_md126',1,'<strong>iterator</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2stack.html#autotoc_md132',1,'<strong>iterator</strong>:']]],
+ ['iterator_5fcategory_131',['iterator_category',['../classdetail_1_1iter__impl.html#a8fa317aaddc3dc7c58264e52e295c43e',1,'detail::iter_impl']]],
+ ['iterator_5finput_5fadapter_132',['iterator_input_adapter',['../classdetail_1_1iterator__input__adapter.html',1,'detail']]],
+ ['iterator_5finput_5fadapter_5ffactory_133',['iterator_input_adapter_factory',['../structdetail_1_1iterator__input__adapter__factory.html',1,'detail']]],
+ ['iterator_5finput_5fadapter_5ffactory_3c_20iteratortype_2c_20enable_5fif_5ft_3c_20is_5fiterator_5fof_5fmultibyte_3c_20iteratortype_20_3e_3a_3avalue_20_3e_20_3e_134',['iterator_input_adapter_factory< IteratorType, enable_if_t< is_iterator_of_multibyte< IteratorType >::value > >',['../structdetail_1_1iterator__input__adapter__factory_3_01_iterator_type_00_01enable__if__t_3_01is__5cecb9bc5a87721b11b4762b91835d89.html',1,'detail']]],
+ ['iterator_5ftraits_135',['iterator_traits',['../structdetail_1_1iterator__traits.html',1,'detail']]],
+ ['iterator_5ftraits_3c_20t_20_2a_2c_20enable_5fif_5ft_3c_20std_3a_3ais_5fobject_3c_20t_20_3e_3a_3avalue_20_3e_20_3e_136',['iterator_traits< T *, enable_if_t< std::is_object< T >::value > >',['../structdetail_1_1iterator__traits_3_01_t_01_5_00_01enable__if__t_3_01std_1_1is__object_3_01_t_01_4_1_1value_01_4_01_4.html',1,'detail']]],
+ ['iterator_5ftraits_3c_20t_2c_20enable_5fif_5ft_3c_20_21std_3a_3ais_5fpointer_3c_20t_20_3e_3a_3avalue_20_3e_20_3e_137',['iterator_traits< T, enable_if_t< !std::is_pointer< T >::value > >',['../structdetail_1_1iterator__traits_3_01_t_00_01enable__if__t_3_01_9std_1_1is__pointer_3_01_t_01_4_1_1value_01_4_01_4.html',1,'detail']]],
+ ['iterator_5ftypes_138',['iterator_types',['../structdetail_1_1iterator__types.html',1,'detail']]],
+ ['iterator_5ftypes_3c_20it_2c_20void_5ft_3c_20typename_20it_3a_3adifference_5ftype_2c_20typename_20it_3a_3avalue_5ftype_2c_20typename_20it_3a_3apointer_2c_20typename_20it_3a_3areference_2c_20typename_20it_3a_3aiterator_5fcategory_20_3e_20_3e_139',['iterator_types< It, void_t< typename It::difference_type, typename It::value_type, typename It::pointer, typename It::reference, typename It::iterator_category > >',['../structdetail_1_1iterator__types_3_01_it_00_01void__t_3_01typename_01_it_1_1difference__type_00_064dac4a14931e9e3b7bc8e1311de4a39.html',1,'detail']]],
+ ['iterator_5ftypes_3c_20t_20_3e_140',['iterator_types< T >',['../structdetail_1_1iterator__types.html',1,'detail']]],
+ ['iterator_5fwrapper_141',['iterator_wrapper',['../classbasic__json.html#ab8b4e0acdea49e5f0a77abdf1ce465d2',1,'basic_json::iterator_wrapper(reference ref) noexcept'],['../classbasic__json.html#a7c0314258e5347eade0c6851017bf5a5',1,'basic_json::iterator_wrapper(const_reference ref) noexcept']]],
+ ['iteratorgenerator_142',['IteratorGenerator',['../class_catch_1_1_generators_1_1_iterator_generator.html',1,'Catch::Generators']]],
+ ['iterators_20strong_20_3a_143',['Iterators strong :',['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2circular__linked__list.html#autotoc_md49',1,'<strong>iterators</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2doubly__linked__list.html#autotoc_md66',1,'<strong>iterators</strong>:'],['../md__2_users_2spirosmag_2_documents_2_algo_plus_2tutorial_2linked__list.html#autotoc_md112',1,'<strong>iterators</strong>:']]],
+ ['itestcaseregistry_144',['ITestCaseRegistry',['../struct_catch_1_1_i_test_case_registry.html',1,'Catch']]],
+ ['itestinvoker_145',['ITestInvoker',['../struct_catch_1_1_i_test_invoker.html',1,'Catch']]],
+ ['itransientexpression_146',['ITransientExpression',['../struct_catch_1_1_i_transient_expression.html',1,'Catch']]]
];
diff --git a/docs/html/search/classes_2.js b/docs/html/search/classes_2.js
index 859d4a07..0b1ac573 100644
--- a/docs/html/search/classes_2.js
+++ b/docs/html/search/classes_2.js
@@ -1,10 +1,11 @@
var searchData=
[
['basic_5fjson_0',['basic_json',['../classbasic__json.html',1,'']]],
- ['binary_5freader_1',['binary_reader',['../classdetail_1_1binary__reader.html',1,'detail']]],
- ['binary_5fwriter_2',['binary_writer',['../classdetail_1_1binary__writer.html',1,'detail']]],
- ['binaryexpr_3',['BinaryExpr',['../class_catch_1_1_binary_expr.html',1,'Catch']]],
- ['boundaries_4',['boundaries',['../structdetail_1_1dtoa__impl_1_1boundaries.html',1,'detail::dtoa_impl']]],
- ['bst_5',['bst',['../classbst.html',1,'']]],
- ['byte_5fcontainer_5fwith_5fsubtype_6',['byte_container_with_subtype',['../classbyte__container__with__subtype.html',1,'']]]
+ ['best_5ffirst_1',['best_first',['../classbest__first.html',1,'']]],
+ ['binary_5freader_2',['binary_reader',['../classdetail_1_1binary__reader.html',1,'detail']]],
+ ['binary_5fwriter_3',['binary_writer',['../classdetail_1_1binary__writer.html',1,'detail']]],
+ ['binaryexpr_4',['BinaryExpr',['../class_catch_1_1_binary_expr.html',1,'Catch']]],
+ ['boundaries_5',['boundaries',['../structdetail_1_1dtoa__impl_1_1boundaries.html',1,'detail::dtoa_impl']]],
+ ['bst_6',['bst',['../classbst.html',1,'']]],
+ ['byte_5fcontainer_5fwith_5fsubtype_7',['byte_container_with_subtype',['../classbyte__container__with__subtype.html',1,'']]]
];
diff --git a/docs/html/search/functions_1.js b/docs/html/search/functions_1.js
index 2d9ed407..a7dc4056 100644
--- a/docs/html/search/functions_1.js
+++ b/docs/html/search/functions_1.js
@@ -1,7 +1,7 @@
var searchData=
[
['accept_0',['accept',['../classdetail_1_1parser.html#ac46da3262cbe66ade670c5b4782451e6',1,'detail::parser']]],
- ['add_5fedge_1',['add_edge',['../classgraph.html#a3b397af35ce0c1db49a6a814e68bffc3',1,'graph::add_edge()'],['../classweighted__graph.html#ad652cc371c4ae27df7bfd45380865726',1,'weighted_graph::add_edge()'],['../classhill__climbing.html#ab246667632b06376b7397d182d9d1204',1,'hill_climbing::add_edge()']]],
+ ['add_5fedge_1',['add_edge',['../classgraph.html#a3b397af35ce0c1db49a6a814e68bffc3',1,'graph::add_edge()'],['../classweighted__graph.html#ad652cc371c4ae27df7bfd45380865726',1,'weighted_graph::add_edge()'],['../classbest__first.html#a0184eaa1f2eb8fa65a7e7f8bafc30dea',1,'best_first::add_edge()'],['../classhill__climbing.html#ab246667632b06376b7397d182d9d1204',1,'hill_climbing::add_edge()']]],
['append_5fexponent_2',['append_exponent',['../namespacedetail_1_1dtoa__impl.html#aec9f6655c3b629aeb0e8c887aea5da87',1,'detail::dtoa_impl']]],
['array_3',['array',['../classbasic__json.html#ac736994a792cb8460a30a3f4dd86fd78',1,'basic_json']]],
['assign_5fto_5fclosest_4',['assign_to_closest',['../classkmeans.html#afbea96aeec84f1fed57e8578235ef605',1,'kmeans']]],
diff --git a/docs/html/search/functions_12.js b/docs/html/search/functions_12.js
index 258c8f56..000e0b0c 100644
--- a/docs/html/search/functions_12.js
+++ b/docs/html/search/functions_12.js
@@ -3,7 +3,7 @@ var searchData=
['same_0',['same',['../classdsu.html#a19200aa5382ec3527a5029f1134fc254',1,'dsu']]],
['sax_5fparse_1',['sax_parse',['../classdetail_1_1binary__reader.html#a8e1b5452ae426e1d7b48761859e7f52d',1,'detail::binary_reader::sax_parse()'],['../classbasic__json.html#a94cbf1844fef86e9301282ad8ca0f822',1,'basic_json::sax_parse(IteratorType first, IteratorType last, SAX *sax, input_format_t format=input_format_t::json, const bool strict=true, const bool ignore_comments=false)'],['../classbasic__json.html#ad018e709338c810c56eaad606186a77e',1,'basic_json::sax_parse(detail::span_input_adapter &&i, SAX *sax, input_format_t format=input_format_t::json, const bool strict=true, const bool ignore_comments=false)']]],
['scc_2',['scc',['../classgraph.html#a0172e168010c9ddc2e85da6aea42b23f',1,'graph::scc()'],['../classweighted__graph.html#a0a49aa40e429a2f9c13096e5d11a33e6',1,'weighted_graph::scc()']]],
- ['search_3',['search',['../classcircular__linked__list.html#a1c978c5b99bc577c81e8d6d654a40b29',1,'circular_linked_list::search()'],['../classdoubly__linked__list.html#aca40a97ffdf597eaaf90c6a37feddbaf',1,'doubly_linked_list::search()'],['../classfrequency__list.html#a64e768e3b3bd8fcb3b00ca6020dda07a',1,'frequency_list::search()'],['../classlinked__list.html#a17a10ae353d0dc8fc7ffe309f0e68c60',1,'linked_list::search()'],['../classskip__list.html#af53fbbb2e9761d71c6d53d3969aac1c9',1,'skip_list::search()'],['../classavl__tree.html#a599641fb0e256bfa25deb206a7bf1b29',1,'avl_tree::search()'],['../classbst.html#acd2ed132fc83a3a50a4085b4b7a90f47',1,'bst::search()'],['../classinterval__tree.html#a5757bdc67f3a8a46d786676691b2d461',1,'interval_tree::search()'],['../classsplay__tree.html#ae15a430689cfc7d6f75c35f8420e36b4',1,'splay_tree::search()'],['../classtrie.html#a390f27fc19bac589b2565bdbca3c0843',1,'trie::search()'],['../classhill__climbing.html#a8b8ea4aff33c127d7de29a27e43e9680',1,'hill_climbing::search()']]],
+ ['search_3',['search',['../classcircular__linked__list.html#a1c978c5b99bc577c81e8d6d654a40b29',1,'circular_linked_list::search()'],['../classdoubly__linked__list.html#aca40a97ffdf597eaaf90c6a37feddbaf',1,'doubly_linked_list::search()'],['../classfrequency__list.html#a64e768e3b3bd8fcb3b00ca6020dda07a',1,'frequency_list::search()'],['../classlinked__list.html#a17a10ae353d0dc8fc7ffe309f0e68c60',1,'linked_list::search()'],['../classskip__list.html#af53fbbb2e9761d71c6d53d3969aac1c9',1,'skip_list::search()'],['../classavl__tree.html#a599641fb0e256bfa25deb206a7bf1b29',1,'avl_tree::search()'],['../classbst.html#acd2ed132fc83a3a50a4085b4b7a90f47',1,'bst::search()'],['../classinterval__tree.html#a5757bdc67f3a8a46d786676691b2d461',1,'interval_tree::search()'],['../classsplay__tree.html#ae15a430689cfc7d6f75c35f8420e36b4',1,'splay_tree::search()'],['../classtrie.html#a390f27fc19bac589b2565bdbca3c0843',1,'trie::search()'],['../classbest__first.html#ad26f8ac0e1c3b07108054faa049a1c58',1,'best_first::search()'],['../classhill__climbing.html#a8b8ea4aff33c127d7de29a27e43e9680',1,'hill_climbing::search()']]],
['serializer_4',['serializer',['../classdetail_1_1serializer.html#a3d025f3aa1e8661554858b8aaab08c3b',1,'detail::serializer']]],
['set_5fbegin_5',['set_begin',['../classdetail_1_1primitive__iterator__t.html#ae05402e355829cd46a9b31365a7b1a49',1,'detail::primitive_iterator_t']]],
['set_5fend_6',['set_end',['../classdetail_1_1primitive__iterator__t.html#a761383c368d1c32f11bbeb31a04e6488',1,'detail::primitive_iterator_t::set_end()'],['../classdetail_1_1iter__impl.html#afc94db3b8f35616347c25fae68e09509',1,'detail::iter_impl::set_end()']]],
diff --git a/docs/html/search/functions_2.js b/docs/html/search/functions_2.js
index 9c4ef2b1..8cf0dc13 100644
--- a/docs/html/search/functions_2.js
+++ b/docs/html/search/functions_2.js
@@ -4,13 +4,14 @@ var searchData=
['basic_5fjson_1',['basic_json',['../classbasic__json.html#ae2d5bc42270881ed3e219e8b1456fec5',1,'basic_json::basic_json(const value_t v)'],['../classbasic__json.html#a5b1fab9ded0a2a182837bd66c0e5189e',1,'basic_json::basic_json(std::nullptr_t=nullptr) noexcept'],['../classbasic__json.html#a0f24e66b152203259eaf05c33ebaeed4',1,'basic_json::basic_json(CompatibleType &&val) noexcept(noexcept(//NOLINT(bugprone-forwarding-reference-overload, bugprone-exception-escape) JSONSerializer< U >::to_json(std::declval< basic_json_t & >(), std::forward< CompatibleType >(val))))'],['../classbasic__json.html#aeaf10402e79a1acce9a74f5a9654d403',1,'basic_json::basic_json(const BasicJsonType &val)'],['../classbasic__json.html#aa911d47d3c99184a301bf4fd304199b2',1,'basic_json::basic_json(initializer_list_t init, bool type_deduction=true, value_t manual_type=value_t::array)'],['../classbasic__json.html#a7b6f0605b09a002567fd18a289cef31b',1,'basic_json::basic_json(size_type cnt, const basic_json &val)'],['../classbasic__json.html#af97b4fcd01509076c8a7b32ec1a10aec',1,'basic_json::basic_json(InputIT first, InputIT last)'],['../classbasic__json.html#af15244e1249b6e7282127d460b5b2e3e',1,'basic_json::basic_json(const basic_json &other)'],['../classbasic__json.html#ae18629aae4bd76e6f7920cf4e7b4dd60',1,'basic_json::basic_json(basic_json &&other) noexcept']]],
['begin_2',['begin',['../classcircular__linked__list.html#a4326741c71783cf7752ec54744853266',1,'circular_linked_list::begin()'],['../classdoubly__linked__list.html#ab855e34667c93dd84e552618669e7b9e',1,'doubly_linked_list::begin()'],['../classfrequency__list.html#a3742b440201c8aa231fbc6480dbea2ec',1,'frequency_list::begin()'],['../classlinked__list.html#a352ebf16cbb0839ea099a5be0df89123',1,'linked_list::begin()'],['../classskip__list.html#ace4f6bb9a3a58c1b993565dc29689b55',1,'skip_list::begin()'],['../classdequeue__list.html#aaa230bf369ec0b763961e3d5aab3ed68',1,'dequeue_list::begin()'],['../classstack__list.html#a87901e2453fe4db8587cfd37de3fcaae',1,'stack_list::begin()'],['../classavl__tree.html#a2e4eb06ce68b6b9cf7e906cb786fc818',1,'avl_tree::begin()'],['../classbst.html#a64edfd3a7c05023cef487ef40a07a322',1,'bst::begin()'],['../classinterval__tree.html#aabb5a5b119dfe11b997d3eb19989363e',1,'interval_tree::begin()'],['../class_mat1d.html#aaa5805e1d9b819858c411fddb6d7f091',1,'Mat1d::begin()'],['../class_mat2d.html#a3ddd50ed0504d260eb5b092999edf313',1,'Mat2d::begin()'],['../classdetail_1_1iteration__proxy.html#a8d35bb0cd56024e1ab1c7277de32e2ab',1,'detail::iteration_proxy::begin()'],['../classbasic__json.html#a5251a08382864af52c854fca1bdba61c',1,'basic_json::begin() noexcept'],['../classbasic__json.html#aac84462424ea7a14f9abb4ddb8e6dd7f',1,'basic_json::begin() const noexcept']]],
['bellman_5fford_3',['bellman_ford',['../classweighted__graph.html#abc8468ebe6d73b583b3bb1876f3b0747',1,'weighted_graph']]],
- ['bfs_4',['bfs',['../classgraph.html#a3cc331d692642bfdee0f8bcf87071176',1,'graph::bfs()'],['../classweighted__graph.html#a5407df31013d7d9d1bd5cbfa63082404',1,'weighted_graph::bfs()']]],
- ['binary_5',['binary',['../structjson__sax.html#a15d6c5d0dcaceb906405f427faf9b34e',1,'json_sax::binary()'],['../classbasic__json.html#a743ac3bcbc4b0f7897244d4cea387eee',1,'basic_json::binary(const typename binary_t::container_type &init)'],['../classbasic__json.html#a45e65e73d9ecf780537d632372fa2c51',1,'basic_json::binary(const typename binary_t::container_type &init, typename binary_t::subtype_type subtype)'],['../classbasic__json.html#a5af2196a9acde33f742ef054e7c2109c',1,'basic_json::binary(typename binary_t::container_type &&init)'],['../classbasic__json.html#ac00a2a38929ce21eae65f9dd09b03ce3',1,'basic_json::binary(typename binary_t::container_type &&init, typename binary_t::subtype_type subtype)']]],
- ['binary_5freader_6',['binary_reader',['../classdetail_1_1binary__reader.html#a5dc3e9216177efe30686876d3faccf52',1,'detail::binary_reader']]],
- ['binary_5fwriter_7',['binary_writer',['../classdetail_1_1binary__writer.html#a5b4f1bfcd0f3f7b57060c059e008c45b',1,'detail::binary_writer']]],
- ['bipartite_8',['bipartite',['../classgraph.html#a24409517a5d6bd3689a11ce1ec18eaab',1,'graph::bipartite()'],['../classweighted__graph.html#a3400015dc6c8bd365042d4fbc48017ce',1,'weighted_graph::bipartite()']]],
- ['boolean_9',['boolean',['../structjson__sax.html#ab89f75382c0fd7fe81c95fc84cfa3150',1,'json_sax']]],
- ['bridge_10',['bridge',['../classgraph.html#a3db835fe4f1f0ef665e1ad1251493879',1,'graph::bridge()'],['../classweighted__graph.html#a3dd0f3f2729700069a1a6f8e28681b9e',1,'weighted_graph::bridge()']]],
- ['bst_11',['bst',['../classbst.html#a6f3db633f32d9c984357adaf2aa1ea14',1,'bst::bst(std::vector< T > __elements={}) noexcept'],['../classbst.html#a7461a2607495eab0f2621708b554e926',1,'bst::bst(const bst &b)']]],
- ['byte_5fcontainer_5fwith_5fsubtype_12',['byte_container_with_subtype',['../classbyte__container__with__subtype.html#a17bc4a2dabb6c7a5ec2cba3f3aaf0431',1,'byte_container_with_subtype::byte_container_with_subtype() noexcept(noexcept(container_type()))'],['../classbyte__container__with__subtype.html#a7f9fb60d4a835e97fbf1c2de7fa382e2',1,'byte_container_with_subtype::byte_container_with_subtype(const container_type &b) noexcept(noexcept(container_type(b)))'],['../classbyte__container__with__subtype.html#a42b8b66b00eb5c0057d4420e196dadf0',1,'byte_container_with_subtype::byte_container_with_subtype(container_type &&b) noexcept(noexcept(container_type(std::move(b))))'],['../classbyte__container__with__subtype.html#a759c6a582dd0684adf7fb9641ef586a4',1,'byte_container_with_subtype::byte_container_with_subtype(const container_type &b, subtype_type subtype_) noexcept(noexcept(container_type(b)))'],['../classbyte__container__with__subtype.html#a3b43bde08a4bff8917bcfad01d9e6089',1,'byte_container_with_subtype::byte_container_with_subtype(container_type &&b, subtype_type subtype_) noexcept(noexcept(container_type(std::move(b))))']]]
+ ['best_5ffirst_4',['best_first',['../classbest__first.html#a0aba60a905eddbc5326e3b1f9bfe0d0f',1,'best_first']]],
+ ['bfs_5',['bfs',['../classgraph.html#a3cc331d692642bfdee0f8bcf87071176',1,'graph::bfs()'],['../classweighted__graph.html#a5407df31013d7d9d1bd5cbfa63082404',1,'weighted_graph::bfs()']]],
+ ['binary_6',['binary',['../structjson__sax.html#a15d6c5d0dcaceb906405f427faf9b34e',1,'json_sax::binary()'],['../classbasic__json.html#a743ac3bcbc4b0f7897244d4cea387eee',1,'basic_json::binary(const typename binary_t::container_type &init)'],['../classbasic__json.html#a45e65e73d9ecf780537d632372fa2c51',1,'basic_json::binary(const typename binary_t::container_type &init, typename binary_t::subtype_type subtype)'],['../classbasic__json.html#a5af2196a9acde33f742ef054e7c2109c',1,'basic_json::binary(typename binary_t::container_type &&init)'],['../classbasic__json.html#ac00a2a38929ce21eae65f9dd09b03ce3',1,'basic_json::binary(typename binary_t::container_type &&init, typename binary_t::subtype_type subtype)']]],
+ ['binary_5freader_7',['binary_reader',['../classdetail_1_1binary__reader.html#a5dc3e9216177efe30686876d3faccf52',1,'detail::binary_reader']]],
+ ['binary_5fwriter_8',['binary_writer',['../classdetail_1_1binary__writer.html#a5b4f1bfcd0f3f7b57060c059e008c45b',1,'detail::binary_writer']]],
+ ['bipartite_9',['bipartite',['../classgraph.html#a24409517a5d6bd3689a11ce1ec18eaab',1,'graph::bipartite()'],['../classweighted__graph.html#a3400015dc6c8bd365042d4fbc48017ce',1,'weighted_graph::bipartite()']]],
+ ['boolean_10',['boolean',['../structjson__sax.html#ab89f75382c0fd7fe81c95fc84cfa3150',1,'json_sax']]],
+ ['bridge_11',['bridge',['../classgraph.html#a3db835fe4f1f0ef665e1ad1251493879',1,'graph::bridge()'],['../classweighted__graph.html#a3dd0f3f2729700069a1a6f8e28681b9e',1,'weighted_graph::bridge()']]],
+ ['bst_12',['bst',['../classbst.html#a6f3db633f32d9c984357adaf2aa1ea14',1,'bst::bst(std::vector< T > __elements={}) noexcept'],['../classbst.html#a7461a2607495eab0f2621708b554e926',1,'bst::bst(const bst &b)']]],
+ ['byte_5fcontainer_5fwith_5fsubtype_13',['byte_container_with_subtype',['../classbyte__container__with__subtype.html#a17bc4a2dabb6c7a5ec2cba3f3aaf0431',1,'byte_container_with_subtype::byte_container_with_subtype() noexcept(noexcept(container_type()))'],['../classbyte__container__with__subtype.html#a7f9fb60d4a835e97fbf1c2de7fa382e2',1,'byte_container_with_subtype::byte_container_with_subtype(const container_type &b) noexcept(noexcept(container_type(b)))'],['../classbyte__container__with__subtype.html#a42b8b66b00eb5c0057d4420e196dadf0',1,'byte_container_with_subtype::byte_container_with_subtype(container_type &&b) noexcept(noexcept(container_type(std::move(b))))'],['../classbyte__container__with__subtype.html#a759c6a582dd0684adf7fb9641ef586a4',1,'byte_container_with_subtype::byte_container_with_subtype(const container_type &b, subtype_type subtype_) noexcept(noexcept(container_type(b)))'],['../classbyte__container__with__subtype.html#a3b43bde08a4bff8917bcfad01d9e6089',1,'byte_container_with_subtype::byte_container_with_subtype(container_type &&b, subtype_type subtype_) noexcept(noexcept(container_type(std::move(b))))']]]
];
diff --git a/docs/html/search/functions_8.js b/docs/html/search/functions_8.js
index 49f53045..d962d194 100644
--- a/docs/html/search/functions_8.js
+++ b/docs/html/search/functions_8.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['has_5fedge_0',['has_edge',['../classgraph.html#a4d434612e87f3e4a5f10c653167da8df',1,'graph::has_edge()'],['../classweighted__graph.html#a47d3931f45d5cc56894589b048e695dc',1,'weighted_graph::has_edge()'],['../classhill__climbing.html#a1ad9ae87f47b2c51afb0c4f5f76f86ba',1,'hill_climbing::has_edge()']]],
+ ['has_5fedge_0',['has_edge',['../classgraph.html#a4d434612e87f3e4a5f10c653167da8df',1,'graph::has_edge()'],['../classweighted__graph.html#a47d3931f45d5cc56894589b048e695dc',1,'weighted_graph::has_edge()'],['../classbest__first.html#a500d360531f7f47a8cc5962d47dc41c4',1,'best_first::has_edge()'],['../classhill__climbing.html#a1ad9ae87f47b2c51afb0c4f5f76f86ba',1,'hill_climbing::has_edge()']]],
['has_5fsubtype_1',['has_subtype',['../classbyte__container__with__subtype.html#a793fab04ad06741b6909dde032d9ea35',1,'byte_container_with_subtype']]],
['hash_2',['hash',['../namespacedetail.html#a9dd43d16a6a490b032ceaca358755a29',1,'detail']]],
['hash_5ftable_3',['hash_table',['../classhash__table.html#adc831edf9651d7a2858e79624417749f',1,'hash_table::hash_table(std::vector< std::pair< KeyType, ValueType > > v={})'],['../classhash__table.html#a72b8facb5a3c01227e96ca3cda64fa14',1,'hash_table::hash_table(const hash_table &h)']]],
diff --git a/docs/html/search/functions_9.js b/docs/html/search/functions_9.js
index e597045d..9cff57d1 100644
--- a/docs/html/search/functions_9.js
+++ b/docs/html/search/functions_9.js
@@ -3,7 +3,7 @@ var searchData=
['inorder_0',['inorder',['../classavl__tree.html#aef655e5753555d705e58d39bd094c55a',1,'avl_tree::inorder()'],['../classbst.html#ab9d984aab9247a36c78b115484ccb623',1,'bst::inorder()'],['../classinterval__tree.html#a6472215cc03add0b3704c3d5e3249259',1,'interval_tree::inorder()'],['../classsplay__tree.html#a3418b2394bd2f5295edeb0444292938a',1,'splay_tree::inorder()']]],
['insert_1',['insert',['../classhash__table.html#a075f7fb9d5f95b828e044dc49e6386ba',1,'hash_table::insert()'],['../classmin__heap.html#a65ea47fb7a47b6db35cfc02a0d1f95be',1,'min_heap::insert()'],['../classskip__list.html#ad7a2f526cda9ab87d50b9e745222ae98',1,'skip_list::insert()'],['../classavl__tree.html#acdeb1d0610c350618d64fdb69f50ab08',1,'avl_tree::insert()'],['../classbst.html#ad7def8a09da61a43c7033365ea226d06',1,'bst::insert()'],['../classinterval__tree.html#aa850e677df1d50f7fa3b4e2a5c8cd2b2',1,'interval_tree::insert()'],['../classsplay__tree.html#a28eea5f755129c69077896c03bb0406e',1,'splay_tree::insert()'],['../classtrie.html#adb61c311b6d076114a48194cbf7e4822',1,'trie::insert()'],['../classbasic__json.html#a7f3817060c2bec896a99cb2c236b9c27',1,'basic_json::insert(const_iterator pos, const basic_json &val)'],['../classbasic__json.html#ae5da62116a40a0f86e87f11fdd54e9f0',1,'basic_json::insert(const_iterator pos, basic_json &&val)'],['../classbasic__json.html#a47b623200562da188886a385c716d101',1,'basic_json::insert(const_iterator pos, size_type cnt, const basic_json &val)'],['../classbasic__json.html#a68e1707248a00a2608a304da5ae5c911',1,'basic_json::insert(const_iterator pos, const_iterator first, const_iterator last)'],['../classbasic__json.html#abdfee6a3db80431a24c68bfaf038c47d',1,'basic_json::insert(const_iterator pos, initializer_list_t ilist)'],['../classbasic__json.html#aaf55c485c75ddd7bd5f9791e59d3aec7',1,'basic_json::insert(const_iterator first, const_iterator last)']]],
['insert_5fiterator_2',['insert_iterator',['../classbasic__json.html#af8c5ca19d22a32054452470669c43bb9',1,'basic_json']]],
- ['insert_5fnode_3',['insert_node',['../classhill__climbing.html#ac30264fd6f3b64003211c7379935199e',1,'hill_climbing']]],
+ ['insert_5fnode_3',['insert_node',['../classbest__first.html#ac6a039d4c6f83eb9707c774a325a0573',1,'best_first::insert_node()'],['../classhill__climbing.html#ac30264fd6f3b64003211c7379935199e',1,'hill_climbing::insert_node()']]],
['interval_5ftree_4',['interval_tree',['../classinterval__tree.html#a425c09376a776f6e00211d92ea26b7e7',1,'interval_tree::interval_tree(std::vector< std::pair< T, T > > v={})'],['../classinterval__tree.html#ae2fd349af4b648eabc0acce807e195e5',1,'interval_tree::interval_tree(const interval_tree &i)']]],
['is_5farray_5',['is_array',['../classbasic__json.html#a184ba4a6b47e6da3703af19349bd776f',1,'basic_json']]],
['is_5fbegin_6',['is_begin',['../classdetail_1_1primitive__iterator__t.html#a46f7197f0ba0ef7c1f24caf3f7f52d6b',1,'detail::primitive_iterator_t']]],
diff --git a/docs/latex/annotated.tex b/docs/latex/annotated.tex
index a486eac5..aa8cc5d3 100644
--- a/docs/latex/annotated.tex
+++ b/docs/latex/annotated.tex
@@ -13,6 +13,7 @@
\item\contentsline{section}{\mbox{\hyperlink{struct_catch_1_1_auto_reg}{Catch\+::\+Auto\+Reg}} }{\pageref{struct_catch_1_1_auto_reg}}{}
\item\contentsline{section}{\mbox{\hyperlink{classavl__tree}{avl\+\_\+tree$<$ T $>$}} \\*Class for AVL tree }{\pageref{classavl__tree}}{}
\item\contentsline{section}{\mbox{\hyperlink{classbasic__json}{basic\+\_\+json$<$ Object\+Type, Array\+Type, String\+Type, Boolean\+Type, Number\+Integer\+Type, Number\+Unsigned\+Type, Number\+Float\+Type, Allocator\+Type, JSONSerializer, Binary\+Type, Custom\+Base\+Class $>$}} \\*Namespace for Niels Lohmann }{\pageref{classbasic__json}}{}
+\item\contentsline{section}{\mbox{\hyperlink{classbest__first}{best\+\_\+first$<$ T $>$}} \\*Best first class }{\pageref{classbest__first}}{}
\item\contentsline{section}{\mbox{\hyperlink{classdetail_1_1binary__reader}{detail\+::binary\+\_\+reader$<$ Basic\+Json\+Type, Input\+Adapter\+Type, SAX $>$}} \\*Deserialization of CBOR, Message\+Pack, and UBJSON values }{\pageref{classdetail_1_1binary__reader}}{}
\item\contentsline{section}{\mbox{\hyperlink{classdetail_1_1binary__writer}{detail\+::binary\+\_\+writer$<$ Basic\+Json\+Type, Char\+Type $>$}} \\*Serialization to CBOR and Message\+Pack values }{\pageref{classdetail_1_1binary__writer}}{}
\item\contentsline{section}{\mbox{\hyperlink{class_catch_1_1_binary_expr}{Catch\+::\+Binary\+Expr$<$ Lhs\+T, Rhs\+T $>$}} }{\pageref{class_catch_1_1_binary_expr}}{}
diff --git a/docs/latex/best__first_8h_source.tex b/docs/latex/best__first_8h_source.tex
new file mode 100644
index 00000000..f4debc61
--- /dev/null
+++ b/docs/latex/best__first_8h_source.tex
@@ -0,0 +1,91 @@
+\doxysection{best\+\_\+first.\+h}
+\hypertarget{best__first_8h_source}{}\label{best__first_8h_source}\index{/Users/spirosmag/Documents/AlgoPlus/src/machine\_learning/search\_algorithms/best\_first/best\_first.h@{/Users/spirosmag/Documents/AlgoPlus/src/machine\_learning/search\_algorithms/best\_first/best\_first.h}}
+
+\begin{DoxyCode}{0}
+\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
+\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#ifndef\ BEST\_FIRST\_H\ }}
+\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#define\ BEST\_FIRST\_H\ }}
+\DoxyCodeLine{00004\ }
+\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#ifdef\ \_\_cplusplus}}
+\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\
}}
+\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ }}
+\DoxyCodeLine{00008\ \textcolor{preprocessor}{\#include\ }}
+\DoxyCodeLine{00009\ \textcolor{preprocessor}{\#endif}}
+\DoxyCodeLine{00010\ }
+\DoxyCodeLine{00014\ \textcolor{keyword}{template}\ <\textcolor{keyword}{typename}\ T>\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classbest__first}{best\_first}}\{}
+\DoxyCodeLine{00015\ \textcolor{keyword}{private}:}
+\DoxyCodeLine{00016\ \ \ std::unordered\_map\ >\ >\ adj;\ }
+\DoxyCodeLine{00017\ \ \ std::unordered\_map\ nodes;}
+\DoxyCodeLine{00018\ \ \ }
+\DoxyCodeLine{00019\ \textcolor{keyword}{public}:}
+\DoxyCodeLine{00020\ }
+\DoxyCodeLine{00026\ \ \ \textcolor{keyword}{explicit}\ \mbox{\hyperlink{classbest__first_a0aba60a905eddbc5326e3b1f9bfe0d0f}{best\_first}}(std::unordered\_map\ >\ >\ v\ =\ \{\})\{}
+\DoxyCodeLine{00027\ \ \ \ \ \textcolor{keywordflow}{if}(!v.empty())\{}
+\DoxyCodeLine{00028\ \ \ \ \ \ \ this-\/>adj\ =\ v;}
+\DoxyCodeLine{00029\ \ \ \ \ \}}
+\DoxyCodeLine{00030\ \ \ \}}
+\DoxyCodeLine{00031\ \ \ }
+\DoxyCodeLine{00037\ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classbest__first_ac6a039d4c6f83eb9707c774a325a0573}{insert\_node}}(T\ u,\ \textcolor{keywordtype}{double}\ val)\{}
+\DoxyCodeLine{00038\ \ \ \ \ nodes[u]\ =\ val;}
+\DoxyCodeLine{00039\ \ \ \}}
+\DoxyCodeLine{00040\ }
+\DoxyCodeLine{00041\ }
+\DoxyCodeLine{00049\ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classbest__first_a500d360531f7f47a8cc5962d47dc41c4}{has\_edge}}(T\ u,\ T\ v)\{}
+\DoxyCodeLine{00050\ \ \ \ \ \textcolor{keywordflow}{if}(adj.find(u)\ !=\ adj.end())\{}
+\DoxyCodeLine{00051\ \ \ \ \ \ \ \textcolor{keywordflow}{for}(std::pair\ \&x\ :\ adj[u])\{}
+\DoxyCodeLine{00052\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(x.first\ ==\ v)\{}
+\DoxyCodeLine{00053\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{true};}
+\DoxyCodeLine{00054\ \ \ \ \ \ \ \ \ \}}
+\DoxyCodeLine{00055\ \ \ \ \ \ \ \}}
+\DoxyCodeLine{00056\ \ \ \ \ \}}
+\DoxyCodeLine{00057\ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};}
+\DoxyCodeLine{00058\ \ \ \}}
+\DoxyCodeLine{00059\ \ }
+\DoxyCodeLine{00065\ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classbest__first_a0184eaa1f2eb8fa65a7e7f8bafc30dea}{add\_edge}}(T\ u,\ T\ v)\{}
+\DoxyCodeLine{00066\ \ \ \ \ \textcolor{keywordflow}{try}\{}
+\DoxyCodeLine{00067\ \ \ \ \ \ \ \textcolor{keywordflow}{if}(nodes.find(u)\ !=\ nodes.end()\ \&\&\ nodes.find(v)\ !=\ nodes.end())\{}
+\DoxyCodeLine{00068\ \ \ \ \ \ \ \ \ adj[u].push\_back(std::make\_pair(v,\ nodes[v]));}
+\DoxyCodeLine{00069\ \ \ \ \ \ \ \}}
+\DoxyCodeLine{00070\ \ \ \ \ \ \ \textcolor{keywordflow}{else}\{}
+\DoxyCodeLine{00071\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{throw}\ std::logic\_error(\textcolor{stringliteral}{"{}One\ of\ the\ two\ nodes\ that\ passed\ to\ the\ function\ do\ not\ exist\ in\ the\ graph"{}});}
+\DoxyCodeLine{00072\ \ \ \ \ \ \ \}}
+\DoxyCodeLine{00073\ \ \ \ \ \}}
+\DoxyCodeLine{00074\ \ \ \ \ \textcolor{keywordflow}{catch}(std::logic\_error\ \&e)\{}
+\DoxyCodeLine{00075\ \ \ \ \ \ \ std::cerr\ <<\ e.what()\ <<\ \textcolor{charliteral}{'\(\backslash\)n'};}
+\DoxyCodeLine{00076\ \ \ \ \ \}}
+\DoxyCodeLine{00077\ \ \ \}}
+\DoxyCodeLine{00078\ \ \ }
+\DoxyCodeLine{00086\ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classbest__first_ad26f8ac0e1c3b07108054faa049a1c58}{search}}(T\ start,\ T\ end)\{}
+\DoxyCodeLine{00087\ \ \ \ \ \textcolor{keywordflow}{if}(adj.empty())\{}
+\DoxyCodeLine{00088\ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};}
+\DoxyCodeLine{00089\ \ \ \ \ \}}
+\DoxyCodeLine{00090\ \ \ \ \ std::unordered\_map\ visited;}
+\DoxyCodeLine{00091\ \ \ \ \ std::priority\_queue,\ std::vector\ >,\ std::greater\ >\ >\ q;}
+\DoxyCodeLine{00092\ \ \ \ \ q.push(\{start,\ nodes[start]\});}
+\DoxyCodeLine{00093\ \ \ \ \ visited[start]\ =\ \textcolor{keyword}{true};}
+\DoxyCodeLine{00094\ \ \ \ \ \textcolor{keywordflow}{while}(!q.empty())\{}
+\DoxyCodeLine{00095\ \ \ \ \ \ \ int64\_t\ size\ =\ q.size();}
+\DoxyCodeLine{00096\ \ \ \ \ \ \ \textcolor{keywordflow}{for}(int64\_t\ i\ =\ 0;\ i\ current\ =\ q.top();}
+\DoxyCodeLine{00098\ \ \ \ \ \ \ \ \ std::cout\ <<\ current.first\ <<\ \textcolor{stringliteral}{"{}\ "{}}\ <<\ current.second\ <<\ \textcolor{charliteral}{'\(\backslash\)n'};}
+\DoxyCodeLine{00099\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(current.first\ ==\ end)\{}
+\DoxyCodeLine{00100\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{true};}
+\DoxyCodeLine{00101\ \ \ \ \ \ \ \ \ \}}
+\DoxyCodeLine{00102\ \ \ \ \ \ \ \ \ q.pop();}
+\DoxyCodeLine{00103\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}(std::pair\ \&x:\ adj[current.first])\{}
+\DoxyCodeLine{00104\ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}(visited.find(x.first)\ ==\ visited.end()\ \&\&\ x.second\ <=\ nodes[current.first])\{}
+\DoxyCodeLine{00105\ \ \ \ \ \ \ \ \ \ \ \ \ visited[x.first]\ =\ \textcolor{keyword}{true};}
+\DoxyCodeLine{00106\ \ \ \ \ \ \ \ \ \ \ \ \ q.push(\{x.first,\ nodes[x.first]\});}
+\DoxyCodeLine{00107\ \ \ \ \ \ \ \ \ \ \ \}}
+\DoxyCodeLine{00108\ \ \ \ \ \ \ \ \ \}}
+\DoxyCodeLine{00109\ \ \ \ \ \ \ \}}
+\DoxyCodeLine{00110\ \ \ \ \ \}}
+\DoxyCodeLine{00111\ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};}
+\DoxyCodeLine{00112\ \ \ \}}
+\DoxyCodeLine{00113\ \};}
+\DoxyCodeLine{00114\ }
+\DoxyCodeLine{00115\ }
+\DoxyCodeLine{00116\ \textcolor{preprocessor}{\#endif}}
+\DoxyCodeLine{00117\ }
+
+\end{DoxyCode}
diff --git a/docs/latex/classbest__first.tex b/docs/latex/classbest__first.tex
new file mode 100644
index 00000000..c1e82787
--- /dev/null
+++ b/docs/latex/classbest__first.tex
@@ -0,0 +1,138 @@
+\doxysection{best\+\_\+first\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>} Class Template Reference}
+\hypertarget{classbest__first}{}\label{classbest__first}\index{best\_first$<$ T $>$@{best\_first$<$ T $>$}}
+
+
+best first class
+
+
+
+
+{\ttfamily \#include $<$best\+\_\+first.\+h$>$}
+
+\doxysubsubsection*{Public Member Functions}
+\begin{DoxyCompactItemize}
+\item
+\mbox{\hyperlink{classbest__first_a0aba60a905eddbc5326e3b1f9bfe0d0f}{best\+\_\+first}} (std\+::unordered\+\_\+map$<$ T, std\+::vector$<$ std\+::pair$<$ T, double $>$ $>$ $>$ v=\{\})
+\begin{DoxyCompactList}\small\item\em \doxylink{classbest__first}{best\+\_\+first} constructor \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classbest__first_ac6a039d4c6f83eb9707c774a325a0573}{insert\+\_\+node}} (T u, double val)
+\begin{DoxyCompactList}\small\item\em insert\+\_\+node function \end{DoxyCompactList}\item
+bool \mbox{\hyperlink{classbest__first_a500d360531f7f47a8cc5962d47dc41c4}{has\+\_\+edge}} (T u, T v)
+\begin{DoxyCompactList}\small\item\em has\+\_\+edge function \end{DoxyCompactList}\item
+void \mbox{\hyperlink{classbest__first_a0184eaa1f2eb8fa65a7e7f8bafc30dea}{add\+\_\+edge}} (T u, T v)
+\begin{DoxyCompactList}\small\item\em add\+\_\+edge function \end{DoxyCompactList}\item
+bool \mbox{\hyperlink{classbest__first_ad26f8ac0e1c3b07108054faa049a1c58}{search}} (T start, T end)
+\begin{DoxyCompactList}\small\item\em search function \end{DoxyCompactList}\end{DoxyCompactItemize}
+
+
+\doxysubsection{Detailed Description}
+\subsubsection*{template$<$typename T$>$\newline
+class best\+\_\+first$<$ T $>$}
+best first class
+
+\doxysubsection{Constructor \& Destructor Documentation}
+\Hypertarget{classbest__first_a0aba60a905eddbc5326e3b1f9bfe0d0f}\label{classbest__first_a0aba60a905eddbc5326e3b1f9bfe0d0f}
+\index{best\_first$<$ T $>$@{best\_first$<$ T $>$}!best\_first@{best\_first}}
+\index{best\_first@{best\_first}!best\_first$<$ T $>$@{best\_first$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{best\_first()}{best\_first()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+\mbox{\hyperlink{classbest__first}{best\+\_\+first}}$<$ T $>$\mbox{\hyperlink{classbest__first}{\+::best\+\_\+first}} (\begin{DoxyParamCaption}\item[{std\+::unordered\+\_\+map$<$ T, std\+::vector$<$ std\+::pair$<$ T, double $>$ $>$ $>$}]{v = {\ttfamily \{\}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [explicit]}}
+
+
+
+\doxylink{classbest__first}{best\+\_\+first} constructor
+
+
+\begin{DoxyParams}{Parameters}
+{\em v} & unordered\+\_\+map\texorpdfstring{$<$}{<}T, pair$<$\+T, int64\+\_\+t$>$ \texorpdfstring{$>$}{>} initializer vector. Default = \{\} \\
+\hline
+\end{DoxyParams}
+
+
+\doxysubsection{Member Function Documentation}
+\Hypertarget{classbest__first_a0184eaa1f2eb8fa65a7e7f8bafc30dea}\label{classbest__first_a0184eaa1f2eb8fa65a7e7f8bafc30dea}
+\index{best\_first$<$ T $>$@{best\_first$<$ T $>$}!add\_edge@{add\_edge}}
+\index{add\_edge@{add\_edge}!best\_first$<$ T $>$@{best\_first$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{add\_edge()}{add\_edge()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+void \mbox{\hyperlink{classbest__first}{best\+\_\+first}}$<$ T $>$\+::add\+\_\+edge (\begin{DoxyParamCaption}\item[{T}]{u, }\item[{T}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+add\+\_\+edge function
+
+
+\begin{DoxyParams}{Parameters}
+{\em u} & the first node \\
+\hline
+{\em v} & the second node \\
+\hline
+\end{DoxyParams}
+\Hypertarget{classbest__first_a500d360531f7f47a8cc5962d47dc41c4}\label{classbest__first_a500d360531f7f47a8cc5962d47dc41c4}
+\index{best\_first$<$ T $>$@{best\_first$<$ T $>$}!has\_edge@{has\_edge}}
+\index{has\_edge@{has\_edge}!best\_first$<$ T $>$@{best\_first$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{has\_edge()}{has\_edge()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+bool \mbox{\hyperlink{classbest__first}{best\+\_\+first}}$<$ T $>$\+::has\+\_\+edge (\begin{DoxyParamCaption}\item[{T}]{u, }\item[{T}]{v }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+has\+\_\+edge function
+
+
+\begin{DoxyParams}{Parameters}
+{\em u} & the first node \\
+\hline
+{\em v} & the second node \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+true if there exist an edge between u and v
+
+false otherwise
+\end{DoxyReturn}
+\Hypertarget{classbest__first_ac6a039d4c6f83eb9707c774a325a0573}\label{classbest__first_ac6a039d4c6f83eb9707c774a325a0573}
+\index{best\_first$<$ T $>$@{best\_first$<$ T $>$}!insert\_node@{insert\_node}}
+\index{insert\_node@{insert\_node}!best\_first$<$ T $>$@{best\_first$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{insert\_node()}{insert\_node()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+void \mbox{\hyperlink{classbest__first}{best\+\_\+first}}$<$ T $>$\+::insert\+\_\+node (\begin{DoxyParamCaption}\item[{T}]{u, }\item[{double}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+insert\+\_\+node function
+
+
+\begin{DoxyParams}{Parameters}
+{\em u} & the node ID \\
+\hline
+{\em val} & the heuristic value of node u \\
+\hline
+\end{DoxyParams}
+\Hypertarget{classbest__first_ad26f8ac0e1c3b07108054faa049a1c58}\label{classbest__first_ad26f8ac0e1c3b07108054faa049a1c58}
+\index{best\_first$<$ T $>$@{best\_first$<$ T $>$}!search@{search}}
+\index{search@{search}!best\_first$<$ T $>$@{best\_first$<$ T $>$}}
+\doxysubsubsection{\texorpdfstring{search()}{search()}}
+{\footnotesize\ttfamily template$<$typename T $>$ \\
+bool \mbox{\hyperlink{classbest__first}{best\+\_\+first}}$<$ T $>$\+::search (\begin{DoxyParamCaption}\item[{T}]{start, }\item[{T}]{end }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
+
+
+
+search function
+
+
+\begin{DoxyParams}{Parameters}
+{\em start} & starting node \\
+\hline
+{\em end} & end node \\
+\hline
+\end{DoxyParams}
+\begin{DoxyReturn}{Returns}
+true if search found the end node.
+
+false otherwise
+\end{DoxyReturn}
+
+
+The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
+\item
+/\+Users/spirosmag/\+Documents/\+Algo\+Plus/src/machine\+\_\+learning/search\+\_\+algorithms/best\+\_\+first/best\+\_\+first.\+h\end{DoxyCompactItemize}
diff --git a/docs/latex/files.tex b/docs/latex/files.tex
index 63b46b45..731a53b3 100644
--- a/docs/latex/files.tex
+++ b/docs/latex/files.tex
@@ -50,6 +50,7 @@
\item\contentsline{section}{/\+Users/spirosmag/\+Documents/\+Algo\+Plus/src/machine\+\_\+learning/clustering/\+DBSCAN/\mbox{\hyperlink{dbscan_8h_source}{dbscan.\+h}} }{\pageref{dbscan_8h_source}}{}
\item\contentsline{section}{/\+Users/spirosmag/\+Documents/\+Algo\+Plus/src/machine\+\_\+learning/clustering/kmeans/\mbox{\hyperlink{kmeans_8h_source}{kmeans.\+h}} }{\pageref{kmeans_8h_source}}{}
\item\contentsline{section}{/\+Users/spirosmag/\+Documents/\+Algo\+Plus/src/machine\+\_\+learning/regression/linear\+\_\+regression/\mbox{\hyperlink{lin__reg_8h_source}{lin\+\_\+reg.\+h}} }{\pageref{lin__reg_8h_source}}{}
+\item\contentsline{section}{/\+Users/spirosmag/\+Documents/\+Algo\+Plus/src/machine\+\_\+learning/search\+\_\+algorithms/best\+\_\+first/\mbox{\hyperlink{best__first_8h_source}{best\+\_\+first.\+h}} }{\pageref{best__first_8h_source}}{}
\item\contentsline{section}{/\+Users/spirosmag/\+Documents/\+Algo\+Plus/src/machine\+\_\+learning/search\+\_\+algorithms/hill\+\_\+climbing/\mbox{\hyperlink{hill__climbing_8h_source}{hill\+\_\+climbing.\+h}} }{\pageref{hill__climbing_8h_source}}{}
\item\contentsline{section}{/\+Users/spirosmag/\+Documents/\+Algo\+Plus/src/visualization/graph\+\_\+visual/\mbox{\hyperlink{graph__visualization_8h_source}{graph\+\_\+visualization.\+h}} }{\pageref{graph__visualization_8h_source}}{}
\item\contentsline{section}{/\+Users/spirosmag/\+Documents/\+Algo\+Plus/src/visualization/list\+\_\+visual/\mbox{\hyperlink{linked__list__visualization_8h_source}{linked\+\_\+list\+\_\+visualization.\+h}} }{\pageref{linked__list__visualization_8h_source}}{}
diff --git a/docs/latex/hierarchy.tex b/docs/latex/hierarchy.tex
index 1058a4ed..b0f3e685 100644
--- a/docs/latex/hierarchy.tex
+++ b/docs/latex/hierarchy.tex
@@ -12,6 +12,7 @@
\item B\begin{DoxyCompactList}
\item \contentsline{section}{detail\+::conjunction\texorpdfstring{$<$}{<} B \texorpdfstring{$>$}{>}}{\pageref{structdetail_1_1conjunction_3_01_b_01_4}}{}
\end{DoxyCompactList}
+\item \contentsline{section}{best\+\_\+first\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>}}{\pageref{classbest__first}}{}
\item \contentsline{section}{detail\+::binary\+\_\+reader\texorpdfstring{$<$}{<} Basic\+Json\+Type, Input\+Adapter\+Type, SAX \texorpdfstring{$>$}{>}}{\pageref{classdetail_1_1binary__reader}}{}
\item \contentsline{section}{detail\+::binary\+\_\+writer\texorpdfstring{$<$}{<} Basic\+Json\+Type, Char\+Type \texorpdfstring{$>$}{>}}{\pageref{classdetail_1_1binary__writer}}{}
\item Binary\+Type\begin{DoxyCompactList}
diff --git a/docs/latex/hill__climbing_8h_source.tex b/docs/latex/hill__climbing_8h_source.tex
index a6b44313..be2bdef3 100644
--- a/docs/latex/hill__climbing_8h_source.tex
+++ b/docs/latex/hill__climbing_8h_source.tex
@@ -40,7 +40,7 @@
\DoxyCodeLine{00056\ \ \ \ \ \}}
\DoxyCodeLine{00057\ \ \ \ \ \textcolor{keywordflow}{return}\ \textcolor{keyword}{false};}
\DoxyCodeLine{00058\ \ \ \}}
-\DoxyCodeLine{00059\ \ \ }
+\DoxyCodeLine{00059\ \ }
\DoxyCodeLine{00065\ \ \ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classhill__climbing_ab246667632b06376b7397d182d9d1204}{add\_edge}}(T\ u,\ T\ v)\{}
\DoxyCodeLine{00066\ \ \ \ \ \textcolor{keywordflow}{try}\{}
\DoxyCodeLine{00067\ \ \ \ \ \ \ \textcolor{keywordflow}{if}(nodes.find(u)\ !=\ nodes.end()\ \&\&\ nodes.find(v)\ !=\ nodes.end())\{}
diff --git a/docs/latex/refman.tex b/docs/latex/refman.tex
index 854c2a26..7e63ba4c 100644
--- a/docs/latex/refman.tex
+++ b/docs/latex/refman.tex
@@ -252,6 +252,7 @@ \chapter{Class Documentation}
\input{struct_catch_1_1_auto_reg}
\input{classavl__tree}
\input{classbasic__json}
+\input{classbest__first}
\input{classdetail_1_1binary__reader}
\input{classdetail_1_1binary__writer}
\input{class_catch_1_1_binary_expr}
@@ -659,6 +660,7 @@ \chapter{File Documentation}
\input{dbscan_8h_source}
\input{kmeans_8h_source}
\input{lin__reg_8h_source}
+\input{best__first_8h_source}
\input{hill__climbing_8h_source}
\input{graph__visualization_8h_source}
\input{linked__list__visualization_8h_source}
diff --git a/src/machine_learning/search_algorithms/best_first/best_first.h b/src/machine_learning/search_algorithms/best_first/best_first.h
new file mode 100644
index 00000000..ada013ab
--- /dev/null
+++ b/src/machine_learning/search_algorithms/best_first/best_first.h
@@ -0,0 +1,117 @@
+#pragma once
+#ifndef BEST_FIRST_H
+#define BEST_FIRST_H
+
+#ifdef __cplusplus
+#include
+#include
+#include
+#endif
+
+/**
+* @brief best first class
+*/
+template class best_first{
+private:
+ std::unordered_map > > adj;
+ std::unordered_map nodes;
+
+public:
+
+ /**
+ * @brief best_first constructor
+ * @param v: unordered_map > initializer vector. Default = {}
+ *
+ */
+ explicit best_first(std::unordered_map > > v = {}){
+ if(!v.empty()){
+ this->adj = v;
+ }
+ }
+
+ /**
+ * @brief insert_node function
+ * @param u: the node ID
+ * @param val: the heuristic value of node u
+ */
+ void insert_node(T u, double val){
+ nodes[u] = val;
+ }
+
+
+ /**
+ * @brief has_edge function
+ * @param u: the first node
+ * @param v: the second node
+ * @return true if there exist an edge between u and v
+ * @return false otherwise
+ */
+ bool has_edge(T u, T v){
+ if(adj.find(u) != adj.end()){
+ for(std::pair &x : adj[u]){
+ if(x.first == v){
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @brief add_edge function
+ * @param u: the first node
+ * @param v: the second node
+ */
+ void add_edge(T u, T v){
+ try{
+ if(nodes.find(u) != nodes.end() && nodes.find(v) != nodes.end()){
+ adj[u].push_back(std::make_pair(v, nodes[v]));
+ }
+ else{
+ throw std::logic_error("One of the two nodes that passed to the function do not exist in the graph");
+ }
+ }
+ catch(std::logic_error &e){
+ std::cerr << e.what() << '\n';
+ }
+ }
+
+ /**
+ * @brief search function
+ * @param start: starting node
+ * @param end: end node
+ * @return true if search found the end node.
+ * @return false otherwise
+ */
+ bool search(T start, T end){
+ if(adj.empty()){
+ return false;
+ }
+ std::unordered_map visited;
+ std::priority_queue, std::vector >, std::greater > > q;
+ q.push({start, nodes[start]});
+ visited[start] = true;
+ while(!q.empty()){
+ int64_t size = q.size();
+ for(int64_t i = 0; i current = q.top();
+ std::cout << current.first << " " << current.second << '\n';
+ if(current.first == end){
+ return true;
+ }
+ q.pop();
+ for(std::pair &x: adj[current.first]){
+ if(visited.find(x.first) == visited.end() && x.second <= nodes[current.first]){
+ visited[x.first] = true;
+ q.push({x.first, nodes[x.first]});
+ }
+ }
+ }
+ }
+ return false;
+ }
+};
+
+
+#endif
+
diff --git a/src/machine_learning/search_algorithms/hill_climbing/hill_climbing.h b/src/machine_learning/search_algorithms/hill_climbing/hill_climbing.h
index 1d05926b..1cb91864 100644
--- a/src/machine_learning/search_algorithms/hill_climbing/hill_climbing.h
+++ b/src/machine_learning/search_algorithms/hill_climbing/hill_climbing.h
@@ -56,7 +56,7 @@ template class hill_climbing{
}
return false;
}
-
+
/**
* @brief add_edge function
* @param u: the first node
diff --git a/tests/machine_learning/search_algorithms/best_first.cc b/tests/machine_learning/search_algorithms/best_first.cc
new file mode 100644
index 00000000..962e8799
--- /dev/null
+++ b/tests/machine_learning/search_algorithms/best_first.cc
@@ -0,0 +1,42 @@
+#include "../../../third_party/catch.hpp"
+#include "../../../src/machine_learning/search_algorithms/best_first/best_first.h"
+#include
+
+TEST_CASE("testing search function"){
+ best_first h;
+ h.insert_node('s', INT_MAX);
+ h.insert_node('A', 10.4);
+ h.insert_node('B', 6.7);
+ h.insert_node('C', 3.2);
+ h.insert_node('D', 5.6);
+ h.insert_node('E', 5.3);
+ h.insert_node('F', 4.33);
+ h.insert_node('G', 0.0);
+ h.add_edge('s', 'D');
+ h.add_edge('A', 'B');
+ h.add_edge('A', 'D');
+ h.add_edge('D', 'E');
+ h.add_edge('E', 'F');
+ h.add_edge('F', 'G');
+ REQUIRE(h.search('s', 'G') == true);
+
+ best_first h2;
+ h2.insert_node('s', INT_MAX);
+ h2.insert_node('A', 10.4);
+ h2.insert_node('B', 6.7);
+ h2.insert_node('C', 3.2);
+ h2.insert_node('D', 5.6);
+ h2.insert_node('E', 5.9);
+ h2.insert_node('F', 4.33);
+ h2.insert_node('G', 0.0);
+ h2.add_edge('s', 'D');
+ h2.add_edge('A', 'B');
+ h2.add_edge('A', 'D');
+ h2.add_edge('D', 'E');
+ h2.add_edge('E', 'F');
+ h2.add_edge('F', 'G');
+
+ REQUIRE(h2.search('s', 'G') == false);
+}
+
+