数据结构(9) -- 图的邻接矩阵存储
2015-04-09 20:51
246 查看
//////////////////////////////////////////////////////// //图的邻接矩阵存储 //////////////////////////////////////////////////////// #include <iostream> #include <stdlib.h> #define MaxVertexNum 100 //最大顶点数 #define INFINITY 0 //无穷大设为无符号整数的最大值 typedef char VertexType; //顶点类型设为字符类型 typedef int EdgeType; ///边的权值设为整形 enum GraphType{DG, UG, DN, UN}; //有向图,无向图,有向网图,无向网图 using namespace std; typedef struct { VertexType Vertices[MaxVertexNum]; //顶点表 EdgeType Edges[MaxVertexNum][MaxVertexNum]; //邻接矩阵,即边表 int n, e; //顶点数n和边数e enum GraphType GType; }MGraph; void CreateMGraph(MGraph *G) { int i, j, k, w; G->GType = UN; /* Undirected Network 无向网图 */ cout << "请输入顶点数和边数(输入格式为:顶点数, 边数):" << endl; cin >> G->n >> G->e; /* 输入顶点数和边数 */ cout << "请输入顶点信息(输入格式为:顶点号<CR>):" << endl; for (i = 0; i < G->n; i++) cin >> &(G->Vertices[i]); /* 输入顶点信息,建立顶点表 */ for (i = 0; i < G->n; i++) for (j = 0; j < G->n; j++) G->Edges[i][j] = INFINITY; /* 初始化邻接矩阵 */ cout << "请输入每条边对应的两个顶点的序号和权值,输入格式为:i, j, w:" << endl; for (k = 0; k < G->e; k++) { cin >> i >> j >> w; /* 输入e条边上的权,建立邻接矩阵 */ G->Edges[i][j] = w; G->Edges[j][i] = w; /* 因为无向网图的邻接矩阵是对称的 */ } } void Print(MGraph *G) { cout << " "; for (int i = 0; i < G->n; i++) cout << G->Vertices[i] << " "; cout << endl; for (int i = 0; i < G->n; i++) { cout << G->Vertices[i] << " "; for (int j = 0; j < G->n; j++) { cout << G->Edges[i][j] << " "; } cout << endl; } } int main() { MGraph *G = new MGraph; CreateMGraph(G); Print(G); int i = 0; //scanf("%d", &i); system("pause"); return 0; }
相关文章推荐
- 算法与数据结构基础9:C++实现有向图——邻接矩阵存储
- 数据结构(15)——--邻接矩阵存储练习
- 【自己动手写数据结构】 -- 有向带权图的邻接矩阵存储的简单实现
- 【数据结构】以邻接矩阵作存储结构,求连通分量的个数,设计算法求图G的深度,深度优先序列输出
- 图的存储结构(邻接矩阵)- 数据结构和算法56
- 第12周 项目1—数据结构之自建算法库——图及其存储结构(邻接矩阵、邻接表)
- 图的存储结构(邻接矩阵)- 数据结构和算法56
- 2015-12-7 项目1—数据结构之自建算法库——图及其存储结构(邻接矩阵、邻接表)
- 数据结构(11):图的存储方式(邻接矩阵、邻接表....)
- 数据结构之无向图基本操作(采用邻接矩阵存储)—整理严蔚敏数据结构
- 数据结构之(图存储结构之)邻接矩阵
- 【第十一周】数据结构之自建算法库——图及其存储结构(邻接矩阵、邻接表)
- 数据结构 — 图之邻接表存储创建和深度优先遍历
- 图的理解:存储结构与邻接矩阵的Java实现
- 第九周 数据结构实现项目--数组和广义表【项目2 - 对称矩阵压缩存储的实现与应用】
- 数据结构——图的邻接矩阵存储
- 邻接矩阵存储图的两种遍历方式
- 图的存储结构(邻接矩阵)
- 数据结构编程笔记十八:第七章 图 图的邻接矩阵存储表示及各基本操作的实现
- 图——克鲁斯算法——构建最小生成树(采用邻接矩阵的方式存储)