// (C) Copyright David Gleich 2007 // // Use, modification and distribution are subject to the // Boost Software License, Version 1.0 (See accompanying file // LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) #include #include #include #include #include using namespace boost; const char* errstr = ""; int test_1() { // core numbers of sample graph typedef adjacency_list Graph; Graph G(21); add_edge(0,1,G); add_edge(1,2,G); add_edge(1,3,G); add_edge(2,3,G); add_edge(1,4,G); add_edge(3,4,G); add_edge(4,5,G); add_edge(4,6,G); add_edge(5,6,G); add_edge(4,7,G); add_edge(5,7,G); add_edge(6,7,G); add_edge(7,8,G); add_edge(3,9,G); add_edge(8,9,G); add_edge(8,10,G); add_edge(9,10,G); add_edge(10,11,G); add_edge(10,12,G); add_edge(3,13,G); add_edge(9,13,G); add_edge(3,14,G); add_edge(9,14,G); add_edge(13,14,G); add_edge(16,17,G); add_edge(16,18,G); add_edge(17,19,G); add_edge(18,19,G); add_edge(19,20,G); std::vector core_nums(num_vertices(G)); core_numbers(G, make_iterator_property_map(core_nums.begin(), get(vertex_index,G))); for (size_t i=0; i > graph_t; int num_nodes = 3; typedef std::pair Edge; Edge edge_array[] = { Edge(0,1), Edge(0,2), Edge(1,2) }; int weights[] = {-1, -2, -2}; int num_arcs = sizeof(edge_array) / sizeof(Edge); graph_t G(edge_array, edge_array + num_arcs, weights, num_nodes); std::vector core_nums(num_vertices(G)); weighted_core_numbers(G, make_iterator_property_map(core_nums.begin(), get(vertex_index,G))); for (size_t i=0; i graph_t; int num_nodes = 5; typedef std::pair Edge; Edge edge_array[] = { Edge(0,1),Edge(1,2),Edge(2,3),Edge(3,4),Edge(4,0) }; int num_arcs = sizeof(edge_array) / sizeof(Edge); graph_t G(edge_array, edge_array + num_arcs, num_nodes); std::vector core_nums(num_vertices(G)); core_numbers(G, make_iterator_property_map(core_nums.begin(), get(vertex_index,G))); for (size_t i=0; i