程序实现图结构
来源:互联网 发布:笛子品牌及价格知乎 编辑:程序博客网 时间:2024/05/22 11:33
#include <stdio.h>#define VERTEX_MAX 26#define MAXVALUE 99999typedef struct{char Vertex[VERTEX_MAX];//保存顶点信息,序号或字母int Edges[VERTEX_MAX][VERTEX_MAX];//保存边的权int isTrav[VERTEX_MAX];//遍历标志int VertexNum;//顶点的数量int EdgeNum;//边的数量int GraphType;//图的类型,0:无向图;1:有向图}MatrixGraph;void CreateMatrixGraph(MatrixGraph *G);//创建邻接矩阵图void OutMatrix(MatrixGraph *G);//输出邻接矩阵/************************************************************************ 函数名称:CreateMatrixGraph 函数功能:创建邻接矩阵图函数参数:G是定义的图结构的指针函数返回:无 ************************************************************************/void CreateMatrixGraph(MatrixGraph *G){int i, j, k, weight;char start, end;printf("输入各个顶点的信息\n");for (i = 0; i < G->VertexNum; i++){getchar();printf("第%d个顶点:", i+1);scanf("%c", &(G->Vertex[i]));}printf("输入构成各边的两个顶点及权值(用逗号分隔):\n");for (k = 0; k < G->EdgeNum; k++){getchar();printf("第%d条边:", k+1);scanf("%c,%c,%d", &start, &end, &weight);for (i = 0; start != G->Vertex[i]; i++);//在已有顶点中查找起始点for (j = 0; end != G->Vertex[j]; j++);//在已有顶点中查找终点G->Edges[i][j] = weight;if (G->GraphType == 0)G->Edges[j][i] = weight;}}/************************************************************************ 函数名称:OutMatrix 函数功能:输出邻接矩阵函数参数:G是定义的图结构的指针函数返回:无 ************************************************************************/void OutMatrix(MatrixGraph *G){int i, j;for (j = 0; j < G->VertexNum; j++){printf("\t%c", G->Vertex[j]);}printf("\n");printf(" ------------------------------------\n");for (i = 0; i < G->VertexNum; i++){printf(" %c |", G->Vertex[i]);for (j = 0; j < G->VertexNum; j++){if (G->Edges[i][j] == MAXVALUE)printf("\t∞");elseprintf("\t%d", G->Edges[i][j]);}printf("\n");}printf("\n");}/************************************************************************ 函数名称:main 函数功能:测试图函数参数:无函数返回:0表示成功************************************************************************/int main(){MatrixGraph G;int i, j;printf("输入生成图的类型(0:无向图,1:有向图):");scanf("%d", &G.GraphType);printf("输入图的顶点数量和边数量:");scanf("%d,%d", &G.VertexNum, &G.EdgeNum);//清空矩阵for (i = 0; i < G.VertexNum; i++)for (j = 0; j < G.VertexNum; j++)G.Edges[i][j] = MAXVALUE;CreateMatrixGraph(&G);printf("邻接矩阵数据如下:\n");OutMatrix(&G);getchar();getchar();return 0;}
0 0
- 程序实现图结构
- 关于有限状态机的一种程序实现结构
- 用单链表结构实现算法2.2的程序
- 用单链表结构实现算法2.2的程序
- 结构体实现计税小程序
- 自己实现遍历文件层次结构程序
- 通过结构体实现程序内敛
- 图结构 java实现
- JAVA实现图结构
- Java实现图结构
- 用java小程序applet实现无限级树结构
- 【小程序】递归实现控制台输出的文件树形结构
- 四.顺序栈结构的实现程序
- 五.链式栈结构的实现程序
- 六.队列顺序结构的实现程序
- 七.队列链式结构的实现程序
- 程序实现二叉树的结构及其操作
- 程序实现线索二叉树的结构及其操作
- Ubuntu 中/etc/resolv.conf 文件修改丢失的解决方案
- hadoop MapReduce - 从作业、任务(task)、管理员角度调优
- Java源码---java.lang.String
- lie
- 关于android系统的分辨率:使用其他设备模拟该分辨率
- 程序实现图结构
- 带37种3D动画特效的跨浏览器CSS3动画框架
- 济南亘安信息教给你怎样选择服务器
- Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库上下文
- Android应用发布后的统计——百度移动统计的应用
- project.pbxproj,最熟悉的”陌生人”
- 根据网络路径批量下载文件保存到本地
- 自学笔记-C语言复习2015年7月4日
- 堆排序C++