博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言 实现邻接矩阵存储图
阅读量:6458 次
发布时间:2019-06-23

本文共 1663 字,大约阅读时间需要 5 分钟。

  hot3.png

// Graph.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "stdlib.h"#include "conio.h"#define VERTEX_MAX 26#define MAXVALUE 32767typedef struct {	char Vertex[VERTEX_MAX];		//保存顶点信息	int Edges[VERTEX_MAX][VERTEX_MAX];	//保存边的权	int isTrav[VERTEX_MAX];				//遍历标志	int VertexNum;						//顶点数量	int EdgeNum;						//边数量	int GraphType;						//图的类型}MatrixGraph;void CreateMartixGraph(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("输入构成各边的两个顶点及权值(用逗号分隔)");	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;		}		}}void OutMartix(MatrixGraph *G) {	int i, j;	for (j = 0; j < G->VertexNum; j++)		printf("\t%c",G->Vertex[j]);	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@");			else				printf("\t%d",G->Edges[i][j]);		}		printf("\n");			}}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;	CreateMartixGraph(&G);	printf("邻接的数据如下\n");	OutMartix(&G);	getch();	    return 0;}

 

转载于:https://my.oschina.net/kakoi/blog/539045

你可能感兴趣的文章
《信息安全系统设计基础》 课程教学
查看>>
Linux平台下使用rman进行oracle数据库迁移
查看>>
全栈工程师学习Linux技术的忠告
查看>>
iOS自定制tabbar与系统的tabbar冲突,造成第一次点击各个item图片更换选中,第二次选中部分item图片不改变...
查看>>
C# Dictionary用法总结
查看>>
SVN服务器使用(二)
查看>>
反射获取内部类以及调用内部类方法
查看>>
C语言 - pthread
查看>>
谈Linq To Sql的优劣--纯个人观点
查看>>
HDU 4996 Revenge of LIS(DP)
查看>>
App里面如何正确显示用户头像
查看>>
DATAGUARD维护:从库宕机后如何恢复到管理恢复模式
查看>>
Android中的PID和UID
查看>>
MAC下上公司内网
查看>>
CentOS7.4安装mysql5.7
查看>>
U-BOOT之一:BootLoader 的概念与功能
查看>>
我的路上
查看>>
Velocity处理多余空白和多余空白行问题
查看>>
内容开发平台(PLATFORM)
查看>>
java值传递
查看>>