数据结构,图的邻接矩阵表示
2009-09-01 14:45
309 查看
#include <stdio.h> #include <stdlib.h> //无向图的邻接矩阵存储 by sixer 2009,9.1 /* 1.使用多个getchar()的时候应该考虑回车键的处理 2.多个scanf输入字符的时候也要注意回车键 ,第二个scanf会读取第一个的回车符 */ #define MaxVertextNum 10 typedef char VertexType; typedef int EdgeType; typedef struct { VertexType vertexs[MaxVertextNum]; EdgeType edges[MaxVertextNum][MaxVertextNum]; int v,e; }MGraph; void createGraph(MGraph *G) { printf("PLZ input the num of Vertes and Edges like this(5,2):"); scanf("%d,%d",&(G->v),&(G->e));//用户输入顶点和边数 int i; //开始初始顶点列表 for(i=0;i<(G->v);i++) { getchar(); printf("PLZ input the mark of the Verte:"); scanf("%c",&(G->vertexs[i])); } //开始初始化边列表 int j,k; for(j=0;j<(G->v);j++) for(k=0;k<(G->v);k++) { G->edges[j][k]=0; } for(i=0;i<(G->e);i++) { getchar(); char v1,v2; printf("PLZ input the two vertexs of the edge:"); scanf("%c,%c",&v1,&v2); //printf("Ur input edge is:%c,%c",v1,v2); for(j=0;v1!=G->vertexs[j];j++); for(k=0;v2!=G->vertexs[k];k++); G->edges[j][k]=1;//如果为网则赋予用户填入的权值 G->edges[k][j]=1;//如果为有向图则去掉该句 } getchar();//eat the absolutely last "Enter" //开始初始化边列表 } void printGraph(MGraph *G) { int i,j; printf("All Vertexs :"); for(i=0;i<G->v;i++) printf(" %c",G->vertexs[i]); printf("/nArray:/n"); for(i=0;i<G->v;i++) for(j=0;j<G->v;j++) { printf(" %d ",G->edges[i][j]); if(j==G->v-1) { printf("/n"); } } } main() { MGraph *myG; myG=malloc(sizeof(MGraph));//malloc return "void*" which means undefined pointer createGraph(myG); printGraph(myG); getchar(); }
相关文章推荐
- C++面向对象的数据结构之 图(邻接矩阵表示)
- 数据结构-图的邻接矩阵表示
- 【c/c++ 算法/数据结构】 邻接矩阵表示图,深度,广度优先遍历 算法设计+代码+图片
- 《数据结构》示范程序/图邻接矩阵表示
- 图的邻接矩阵表示广度深度遍历大连理工大学数据结构上机
- 数据结构中用图的邻接矩阵的表示以及深度搜索
- 【数据结构】邻接矩阵表示法的图的深度广度优先遍历递归和非递归遍历
- 数据结构 图的邻接表表示转换成邻接矩阵表示的算法
- 数据结构C语言--邻接矩阵表示有向网
- 数据结构 图的邻接矩阵表示法
- 数据结构之图(C++)--邻接矩阵表示(一)
- 数据结构——邻接矩阵表示的图的Floyd算法
- 【数据结构】邻接矩阵表示法的图的深度广度优先遍历递归和非递归遍历
- 数据结构的C实现_图_邻接矩阵表示
- 数据结构 学习笔记(七):图(上):图的表示方法(邻接表,邻接矩阵),遍历(DFS,BFS)
- 数据结构——邻接矩阵表示的图的Dijkstra算法
- 7-1-图、表的数组(邻接矩阵)表示法-图-第7章-《数据结构》课本源码-严蔚敏吴伟民版
- 详解数据结构——图之邻接矩阵表示法
- 【数据结构】拾遗(一):图的邻接矩阵创建以及其深广度遍历C++实现
- 数据结构--线性表的顺序表示(6~10)