图的邻接矩阵表示
2017-11-19 20:38
169 查看
#include<stdio.h> #include<malloc.h> #define maxsize 100 typedef char Vertextype; typedef struct{ Vertextype vexs[maxsize]; int edge[maxsize][maxsize]; int e,n; }Graph; //得到图的第i个顶点的值 Vertextype GetValue(Graph *g,int i){ if(i<0 || i>=g->n) exit(1); return g->vexs[i]; } //输入顶点和边,创建图 void create(Graph *g){ int i,j,k; printf("请输入顶点和边数:"); scanf("%d%d",&g->n,&g->e); printf("请输入%d个顶点的值:",g->n); getchar(); for(i=0;i<g->n;i++) scanf("%c",&g->vexs[i]); for(i=0;i<g->n;i++) for(j=0;j<g->n;j++) g->edge[i][j] = 0; printf("请输入%d条边:",g->e); for(k=0;k<g->e;k++){ scanf("%d%d",&i,&j); g->edge[i][j] = 1; g->edge[j][i] = 1; } } //输出图的临接矩阵 void Showmatrix(Graph *g){ printf(" "); for(int i=0;i<g->n;i++) printf("%3c",g->vexs[i]); printf("\n"); for(int i=0;i<g->n;i++){ printf("%3c",g->vexs[i]); for(int j=0;j<g->n;j++) printf("%3d",g->edge[i][j]); printf("\n"); } } int main() { Graph g,*pg = &g; create(pg); Showmatrix(pg); }
实现结果如下
相关文章推荐
- 拓扑排序-邻接矩阵表示
- 图的建立(邻接矩阵表示)
- 图(2)—— 邻接矩阵表示法
- 图——广度优先遍历和深度优先遍历——邻接矩阵表示法
- 大二用C++写的图邻接矩阵表示法
- 图的邻接矩阵表示、广度优先遍历和深度优先遍历
- 图的邻接矩阵表示法及顶点入度、出度的计算方法
- 有向图的邻接矩阵表示法(创建,DFS,BFS)
- 7-1-图、表的数组(邻接矩阵)表示法-图-第7章-《数据结构》课本源码-严蔚敏吴伟民版
- 图的深度优先遍历DFS(邻接矩阵表示法)
- 数据结构——图的数组实现(邻接矩阵表示法)
- 图的邻接矩阵表示(完整版)
- 数据结构C语言--邻接矩阵表示有向网
- 邻接矩阵表示的深度优先搜索
- 《数据结构》示范程序/图邻接矩阵表示
- 图的邻接矩阵表示(DFS,BFS)
- 有向图的邻接矩阵表示法(创建,DFS,BFS)
- 图的邻接矩阵表示
- SDUT 图的深度优先遍历(邻接矩阵表示)
- Dijkstra算法-最短路径-邻接矩阵表示