(12.15)图的邻接矩阵实现

  汗,发现自己不写博客就学不好数据结构,,算了,,继续坚持写博!
无向网为例
              Wij   如果∈E或者∈E
arc[i][j]=   0     i = j
              ∞     其他

举个例子:
(12.15)图的邻接矩阵实现
从每一行都能看到每个顶点是和哪几个其他的顶点连接的。

自己写的一段小代码:
#include<iostream>
using namespace std;

const int vertex_max = 20;   //初始设定顶点的最大值为20  
struct Graph
{
    char vertex [ vertex_max ];   //建立顶点表
    int arc [ vertex_max ][ vertex_max ];   //邻接矩阵
    int vertexnum , arcnum;   //顶点个数,边个数
};

void CreatGraph( Graph & G)
{
    int i , j , k , w; //w是权值
    cout << "请输入顶点个数和边的个数:" << endl;
    cin >> G . vertexnum >> G . arcnum;
    cout << "请依次输入顶点的信息:" << endl;
    for( i = 0 ; i <G.vertexnum ; i ++)
       cin>>G.vertex[i];
   for( i = 0 ; i <G.vertexnum ;  i ++)           //初始化邻接矩阵
       for(j  = 0 ; j G.vertexnum ;  j ++)
       {
           if(i == j)
               G.arc[i][j] = 0;
           else
           G.arc[i][j] = INT_MAX;
       }
   cout<<"请输入边(Vi,Vj)的下标i,j和权值:"<<endl;
   cout<<endl;
   cout<<"                     i   j   weight  "<<endl;
   for(k = 0 ; k G.arcnum ; k ++)
   {
       cout<<"请输入第"<<k+1<<"条边的信息:";
       cin>>i>>j>>w;
       G.arc[i][j] = w;
       G.arc[j][i] = G.arc[j][i];
   }
   cout<<"creat successful"<<endl;
}

int main()
{
   Graph G;
   CreatGraph(G);
}



(12.15)图的邻接矩阵实现

你可能感兴趣的:((12.15)图的邻接矩阵实现)