您的位置:首页 > 其它

无向图的邻接矩阵创建表示

2017-04-05 20:44 253 查看
#include <iostream>

using namespace std;

#include "stdlib.h"

#include "math.h"

#include "time.h"

// 无向图的创建
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define MAXVEX 100                  // 最大的顶点数
#define INFINITY 65535

typedef int Status;
typedef int VertexType ;            // 顶点的类型
typedef int EdgeType;               // 边上权值的类型
typedef struct{

VertexType vex{MAXVEX};         // 顶点表

EdgeType arc[MAXVEX][MAXVEX];   // 邻接矩阵

int numNodes, numEdges;         // 图中当前的顶点数和边数
}MGraph;

void CreateMGraph(MGraph * G){

int i,j;

int k,w;

cout<<"输入顶点数和边数"<<endl;

cin>>G->numNodes>>G->numEdges;

for (i = 0; i < G->numNodes ; i++) { // 邻接矩阵初始化

for (i = 0; i < G->numNodes ; i++) {

G->arc[i][j] = INFINITY;

}
}

for(k = 0; k < G->numEdges; k++){

cout<<"输入边 (vi,vj)上的下标i,下标j,和权值w:"<<endl;

cin>>i>>j>>w;

G->arc[i][j] = w;

G->arc[j][i] = G->arc[i][j]; // 无向图对称

}
}

int main(int argc, const char * argv[]) {

MGraph G;

CreateMGraph(&G);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: