zoukankan      html  css  js  c++  java
  • 14.boost最小生成树 kruskal_min_spainning_tree

     1 #include <iostream>
     2 #include <boost/config.hpp>
     3 //图(矩阵实现)
     4 #include <boost/graph/adjacency_matrix.hpp>
     5 #include <boostgraphgraph_utility.hpp>
     6 #include <boost/graph/graph_traits.hpp>
     7 //图(链表实现)
     8 #include <boost/graph/adjacency_list.hpp>
     9 //求最小生成树
    10 #include <boost/graph/kruskal_min_spanning_tree.hpp>
    11 using namespace std;
    12 using namespace boost;
    13 
    14 //顶点名称
    15 enum { A, B, C, D, E, F };
    16 //顶点个数
    17 #define N 6
    18 const char *name = "ABCDEF";
    19 
    20 //无向图
    21 void main()
    22 {
    23     //图,每个结点是vec来实现,无向图,有边长与权重的属性
    24     adjacency_list<vecS, vecS, undirectedS, no_property, property<edge_weight_t, int>> myg;
    25     add_edge(A, B,13, myg);
    26     add_edge(B, C,23 ,myg);
    27     add_edge(A, C,1, myg);
    28     add_edge(A, D,11, myg);
    29     add_edge(C, D,10, myg);
    30     add_edge(B, D,11, myg);
    31 
    32     //链表
    33     typedef adjacency_list<vecS, vecS, undirectedS, property<edge_weight_t, int>> mygraph;
    34     //创建边的链表
    35     list<mygraph::edge_descriptor> mylist;
    36     //生成的结果尾插到mylist
    37     kruskal_minimum_spanning_tree(myg, back_inserter(mylist));
    38 
    39     //创建边与权重的映射(weight是函数指针)
    40     auto weight= get(edge_weight,myg);
    41     //property_map<mygraph, edge_weight_t>::type weight = get(edge_weight, myg);
    42 
    43     for (auto ib = mylist.begin(); ib != mylist.end(); ib++)
    44     {
    45         //输出边
    46         //cout << *ib << endl;
    47         cout << source(*ib, myg) << "->" << target(*ib, myg) << "权重" << weight(*ib) << endl;
    48     }
    49     cin.get();
    50 }
  • 相关阅读:
    sqlserver 配置管理器中无法启动sqlserver服务
    9.4笔记
    ASP.NET 正则表达式验证
    ASP.NET之OnClientClick 事件
    ASP.NET之js 根据textbox变化刷新相关数据
    SQL
    leetcode:Roman to Integer(罗马数字转化为罗马数字)
    leetcode:Integer to Roman(整数转化为罗马数字)
    leetcode:Palindrome Number
    leetcode:String to Integer (atoi)
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8662881.html
Copyright © 2011-2022 走看看