#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;
}
无向图的邻接矩阵创建表示
最新推荐文章于 2024-05-21 23:03:11 发布