zoukankan      html  css  js  c++  java
  • 18.boost 图的拓扑排序

    运行结果:

    代码示例:

     1 #include <iostream>
     2 #include <vector>
     3 #include <deque>
     4 #include <boost/config.hpp>
     5 #include <boost/graph/adjacency_matrix.hpp>
     6 #include <boost/graph/graph_utility.hpp>//打印顶点,边长
     7 #include <boost/graph/adjacency_list.hpp>
     8 //拓扑排序
     9 #include <boost/graph/topological_sort.hpp>
    10 
    11 using namespace std;
    12 using namespace boost;
    13 
    14 void main()
    15 {
    16     vector<string> task;
    17     task.push_back("幼儿园接小孩");
    18     task.push_back("买菜");
    19     task.push_back("去ATM取钱");
    20     task.push_back("送孩子去看书");
    21     task.push_back("煮饭");
    22     task.push_back("去图书馆接孩子");
    23     task.push_back("吃饭");
    24 
    25     typedef pair<int, int>pint;
    26     pint ea[] = { pint(0,3),pint(1,3),pint(1,4), pint(2,1), pint(3,5), pint(4,6), pint(5,6) };
    27     //初始化
    28     vector<pint> myv(ea, ea + 7);
    29     //生成图
    30     adjacency_list<listS, vecS, directedS> myg(myv.begin(), myv.end(), myv.size());
    31 
    32     deque<int> top_order;
    33     //拓扑排序
    34     topological_sort(myg, front_inserter(top_order), vertex_index_map(identity_property_map()));
    35     for (auto ib = top_order.begin(); ib != top_order.end(); ib++)
    36     {
    37         cout << task[*ib] << endl;
    38     }
    39     cin.get();
    40 }
  • 相关阅读:
    linux 网卡配置详情
    linux ftp 添加用户及权限管理
    mysql 权限管理
    linux ftp 安装及相关命令
    linux find 命令
    linux yum 安装及卸载
    linux svn 安装
    cssText方式写入css
    addLoadEvent
    mobile体验效果:增加点击后反馈
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8668478.html
Copyright © 2011-2022 走看看