博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
53-图的邻接矩阵存操作实例
阅读量:2042 次
发布时间:2019-04-28

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

图的邻接矩阵操作算法实现如下:

#define _CRT_SECURE_NO_WARNINGS#include 
#include
#include
#define MAXV 5 //最大顶点个数#define LIMITLESS 9999 //表示无穷大“ ∞ ”typedef char InfoType [10];//顶点类型typedef struct VERTEXTYPE { int num; //顶点编号 InfoType info; //顶点其他信息} VertexType;//图的定义:邻接矩阵typedef struct MGRAPH{ int n; //顶点数 int e; //边数 int deges[MAXV][MAXV]; //邻接矩阵 VertexType vesx[MAXV]; //顶点类型} MGraph;//创建图的邻接矩阵void CreateMGraph(MGraph *G){ int i; int j; int k; int w; if(G == NULL) { return; } printf("输入顶点数和边数:"); scanf("%d %d" , &(G->n) , &(G->e)); printf("输入顶点信息:\n"); for(i = 0; i < G->n; i++) { scanf("%d %s" , &(G->vesx[i].num), &(G->vesx[i].info)); } for(i = 0; i < G->n; i++) { for(j = 0; j < G->n; j++) { //邻接矩阵的对角线值为0 if(j == i) { G->deges[i][j] = 0; } //其他全部初始化为无穷大“ ∞ ” else { G->deges[i][j] = LIMITLESS; } } } //记录每条边的权值 printf("请输入 i , j , w 的值:\n"); for(k = 0; k < G->e; k++) { scanf("%d %d %d" , &i , &j , &w); G->deges[i][j] = w; }}//输出图的邻接矩阵void DispMGraph(MGraph *G){ int i; int j; if(G == NULL) { return; } printf("顶点数:%d\n边数:%d\n" , G->n , G->e); printf("%d个顶点的信息:\n" , G->n); //输出顶点信息 for(i = 0; i < G->n; i++) { printf("%5d %5d %s\n" , i , G->vesx[i].num , G->vesx[i].info); } printf("各顶点相连的情况:\n"); printf("\t"); for(j = 0; j < G->n; j++) { printf("[%d]\t" , j); } printf("\n"); for(i = 0; i < G->n; i++) { printf("[%d]\t" , i); for (j = 0; j < G->n; j++) { if(G->deges[i][j] == LIMITLESS) { printf("∞\t"); }else { printf("%d\t" , G->deges[i][j]); } } printf("\n"); }}int main(void){ MGraph *g = NULL; g = (MGraph *)malloc(sizeof(MGraph)); //创建图结构 CreateMGraph(g); //输出图结构 DispMGraph(g); printf("\n"); return 0;}

测试结果:
这里写图片描述

  这是一个有向图,从测试的结果来看,和我们期望的52篇中图5中的邻接矩阵中的是一样的。

你可能感兴趣的文章
【F12】九个Console命令,让js调试更简单
查看>>
【数据库】left join(左关联)、right join(右关联)、inner join(自关联)的区别...
查看>>
【雅思】【写作】【大作文】Advantage VS. Disadvantage
查看>>
【雅思】金山词霸-单词学习(41-80)
查看>>
【雅思】【写作】【大作文】Report
查看>>
【雅思】【作文】顾家北100句翻译
查看>>
【雅思】【写作】【大作文】Discuss both views and give your own opinion
查看>>
【托业】【金山词霸】21-42
查看>>
【托业】【金山词霸】单词1-20
查看>>
【Python】脚本运行报错:IndentationError: unindent does not match any outer indentation level...
查看>>
【JMeter】前置处理器
查看>>
【Linux】top命令详解
查看>>
【黑盒测试】测试用例的常用方法
查看>>
【Linux】阿里云服务器部署--禅道
查看>>
【Loadrunner】Loadrunner 手动关联技术
查看>>
【性能测试】性能测试表
查看>>
【Mock】mock基础、简单的单元测试代码练习。
查看>>
【Loadrunner】Loadrnner 参数化策略
查看>>
【WebDriver】WebDriver 常用操作
查看>>
【Selenium】selenium中隐藏元素如何定位?
查看>>