图的创建——邻接矩阵

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <cstdio>
 
using namespace std;
 
const int VERTEX_NUM = 20;
const int INFINITY = 0x7fffffff;        // 最大int型数,表示权的无限值
 
class Graph {
public:
    int vexNum;
    int edgeNum;
    int vex[VERTEX_NUM];
    int arc[VERTEX_NUM][VERTEX_NUM];
};
 
void createGraph(Graph &G)
{
    cout << "please input vexNum and edgeNum: ";
    cin >> G.vexNum >> G.edgeNum;
    for (int i = 0; i != G.vexNum; ++i) {
        cout << "please input no" << i+1 << " vertex: ";
        cin >>  G.vex[i];
    }
    for (int i = 0; i != G.vexNum; ++i) {
        for (int j = 0; j != G.vexNum; ++j) {
            G.arc[i][j] = INFINITY;
        }
    }
    for (int k = 0; k != G.edgeNum; ++k) {
        cout << "please input the vertex of edge(vi, vj) and weight: ";
        int i, j, w;
        cin >> i >> j >> w;
        G.arc[i][j] = w;
        G.arc[j][i] = G.arc[i][j];          // 无向图
    }
}
 
int main()
{
    Graph G;
    createGraph(G);
    return 0;
}

  

posted @   GGBeng  阅读(292)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示