zoukankan      html  css  js  c++  java
  • 邻接表存图

    存图方式之邻接表

    头文件
    #include<vector>
    
    代码实现
    • 无权图
    #include <stdio.h>
    #include <vector>
    vector<int> con[109];
    
    int main()
    {
            int i,p,j,n,t;
            int m,a,b;
            scanf(“%d%d”,&n, &m);
            while(m—)                             //存图
            {
                scanf(“%d%d”,&a,&b);
                con[a].push_back(b);
                con[b].push_back(a);  // 无向图
            } 
            
            for(i = 1; i <= n ; i++) {         //遍历图
                    for(j = 0; j < con[i].size(); j++) {
                            printf(“%d -> %d
    ”, i, con[i][j]);
                    }
            }
            
            return 0;
    }
    
    
    • 有权图
    
    #include <stdio.h>
    #include <vector>
    
    
    struct edge{
        int to;
        int w;    
    };
    
    vector<struct edge> con[109];
    
    int main()
    {
            int i,p,j,n,t;
            int m,a,b,c;
            struct edge mid;
            cin >> n >> m;
            while(m—)                                   //存图
            {
                    cin >> a >> b >> c;
                    mid.to = b;
                    mid.w = c;
                    con[a].push_back(mid);
                    
                    mid.to = a;                             //无向图
                    con[b].push_back(mid);
            }
            
            for(i  = 1; i  <= n; i++)
            {
                    for(j = 0; j < con[i].size(); j++)
                    {
                            cout << con[i][j].to << “  ” << con[i][j].w << endl;
                    }
            }
            return 0;
            
    }
    
    
  • 相关阅读:
    Spring浅谈
    struts浅谈
    Tomcat启动发生的那些事儿
    sizeof的用法
    栈应用之括号匹配
    条件编译
    MySQL数据库常用命令
    快速排序
    分页查询的那些坑和各种技巧
    国外程序员收集整理的 PHP 资源大全
  • 原文地址:https://www.cnblogs.com/daybreaking/p/12782832.html
Copyright © 2011-2022 走看看