zoukankan      html  css  js  c++  java
  • 图的存储结构

    1.邻接矩阵的表示方法

    用0和1表示

    无向图:的邻接矩阵是对称的,图中的边的数目是矩阵中1的个数的一半。顶点i的度为第i行或第i列1的个数。第i行j列的值为1表示顶点i和顶点j之间有边相连

    有向图:矩阵不一定对称,图中的有向边的数目是矩阵1的个数,顶点i的入度为第i列的1的个数,顶点i的出度为第i行1的个数。第i行j列的值为1表示顶点i和顶点j之间有边相连。

    邻接矩阵的存储表示:

    图的邻接矩阵的类型:

    #define MaxSize 100                /*最大的顶点数*/
    typedef char VertexType;               /*顶点的类型*/
    typedef int wType;       /*边上的权重类型*/
    typedef struct
    {
    VertexType vexs[MaxSize];    /* 顶点表*/
    wType w[MaxSize][MaxSize]; /*邻接矩阵,可看做边表*/
    int vexnum,w;
    }AdjMatrix;
    View Code

    无向图邻接矩阵的算法:

    void CreatGraph(AdjMatrix *G) /*建立无向图的邻接矩阵表示*/
    {
        int i,j,k;
        scanf("%d%d",&G->vexnum,&G->wnum);/*输入顶点数和边数*/
        getchar();
        for(i=0;i<G->vexnum;i++)
            for(j=0;j<G->vexnum;j++)
                G->w[i][j]=0; /*邻接矩阵初始化*/
            for(k=0;k<G->wnum;k++) /*读入wnum条边*/
            {scanf("%d%d",&i,&j); /*输入表示边(vi,vj)的顶点序号i,j*/
            G->w[i][j]=1;
            G->w[j][i]=1;
            }
    }
    View Code

    。。。。。待续

  • 相关阅读:
    51nod1381 硬币游戏
    51nod1381 硬币游戏
    51nod1384 全排列
    LOJ P10130 点的距离 题解
    POJ P1985 Cow Marathon 题解
    求树的直径(两种方法)
    洛谷 P3518 [POI2011] SEJ-Strongbox 题解
    洛谷 UVA12101 Prime Path 题解
    POJ P2251 Dungeon Master 题解
    POJ P3009 Curling 2.0 题解
  • 原文地址:https://www.cnblogs.com/lqs-zsjky/p/4356250.html
Copyright © 2011-2022 走看看