图的存储结构有 3 种形式:邻接矩阵、邻接表 和 邻接多重表

对于一个有 n 个顶点的图,其顶点信息可以用一个一维数组表示,而顶点间是否有相邻的关系,可以用邻接矩阵(Adjacency Matrix)来表示。若 G 是一个有 n 个顶点的图,则 G 的邻接矩阵 A 是具有如下性质的 n 阶方阵:

带权的图成为网,下面给出一个程序来构建一个网的邻接矩阵:

#include<iostream>
#include<stdio.h>
#include<limits.h>
using namespace std;
#define INFINITY INT_MAX
#define MAX_VERTEX_NUM 20typedef struct{int vex[MAX_VERTEX_NUM];int arcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];int vexnum,arcnum;
}mgraph;void creatmg(mgraph *g)
{int m,n,w;cin>>g->vexnum>>g->arcnum;       // 输入顶点的个数和边数for(int i=0;i<g->vexnum;i++)for(int j=0;j<g->vexnum;j++)g->arcs[i][j] = INFINITY;   // 初始化邻接矩阵各元素为无穷大for(int i=0;i<g->vexnum;i++)cin>>g->vex[i];         // 输入顶点for(int j=0;j<g->arcnum;j++){cin>>m>>n>>w;    // 输入 arcnum 条边所对应的顶点 m, n,以及这两个顶点之间的权重 wg->arcs[m][n] = g->arcs[n][m] = w;   // 无向图的邻接矩阵的对称的}
}int main()
{mgraph g;creatmg(&g);cout<<g.arcs[2][1]<<endl;   // 输出顶点 2,1 之间的权重system("pause");return 0;
}

C语言数据结构之图的邻接矩阵的应用实例相关推荐

  1. C语言中用链表构建栈讲解,C语言数据结构之使用链表模拟栈的实例

    C语言数据结构之使用链表模拟栈的实例 以下是"使用链表模拟栈"的简单示例: 1. 用C语言实现的版本 #include #include typedef char datatype ...

  2. 数据结构之图(二)——邻接矩阵

    图的逻辑结构为多对多,图没有顺序存储结构,但可以借助二维数组来表示元素间的关系,即数组表示法(邻接矩阵).图的链式存储结构可以用多重链表来描述,如邻接表,邻接多重表以及十字链表等. 邻接矩阵 数组(邻 ...

  3. C语言数据结构_图、图的深度优先遍历、广度优先遍历

    图 图是一种多对多的关系,可以有零个或多个直接前驱,也可以有零个或多个直接后驱.相较于线性表和树,图的结点可以是任意的,而线性表有头结点,只要知道了头结点,那么整个线性表就可以直接访问,树有根结点,可 ...

  4. 【数据结构】图(最短路径Dijkstra算法)的JAVA代码实现

    最短路径的概念 最短路径的问题是比较典型的应用问题.在图中,确定了起始点和终点之后,一般情况下都可以有很多条路径来连接两者.而边或弧的权值最小的那一条路径就称为两点之间的最短路径,路径上的第一个顶点为 ...

  5. 【数据结构】图的存储结构(邻接矩阵、邻接表、十字链表、邻接多重表)及实现(C语言)

    目录 1. 邻接矩阵表示法 1.1 图的邻接矩阵 1.2 创建有向网的邻接矩阵 2. 邻接表表示法 2.1 图的邻接表存储结构 2.2 创建有向图的邻接表 3. 十字链表表示法 3.1 图的十字链表存 ...

  6. 【大话数据结构C语言】38 图的存储结构(邻接矩阵)

    我的首发平台是公众号[CodeAllen],学习交流QQ群:736386324,转载请注明出处 因为图人任意两点之间都可能存在联系,所以无法用数据元素在内存中的物理位置表示元素之间的关系 因此将数组和 ...

  7. 20.0、C语言数据结构——图的存储结构

    20.0.C语言数据结构--图的存储结构 图的存储结构相比较线性表与树来说就复杂很多了: 1. 我们回顾下,对于线性表来说,是一对一的关系,所以用数组或者链表均可简单存放:树结构是一对多的关系,所以我 ...

  8. C语言利用图的邻接矩阵的存储方式实现拓扑排序

    C语言利用图的邻接矩阵的存储方式实现拓扑排序 在拓扑排序中,我们的对象是有向无环图,这种图是描述工程进行过程的有效工具.比如"课程开课顺序,施工进程,软件开发进程",我们在使用有向 ...

  9. 数据结构之图:邻接矩阵和邻接表、深度优先遍历和广度优先遍历

    简介 线性表是一种线性结构,除了头结点和尾节点,线性表的每个元素都只有一个前取节点和一个后继节点.而树结构则相较于线性表更加复杂,它描述的关系为数据元素之间的父子关系,也是现实世界父子关系的缩影, 一 ...

  10. C语言《数据结构》——图的概念和创建,遍历

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 例如:随着计算机网络的发展,编程成了一种很常见且重要的职业,学好编程就要学好数据结构,下面将介绍数据结构中的图结构. ...

最新文章

  1. jquery ajax中使用jsonp的限制[转]
  2. php下关于Cannot use a scalar value as an array的解决办法
  3. dubbo内置哪几种服务容器_dubbo启动服务之容器(Container)
  4. SAP Spartacus 使用 customized API
  5. 使用tcpdump,adb进行手机抓包
  6. 做好这5点基本要求 才能算一个合格的HTML5动画
  7. linux如何重置网络,Ubuntu 重新设置网络
  8. jquery获取设置元素宽高位置height()、width()、offset()、position()、scrollTop()、scrollLeft()
  9. 《设计模式之禅》--设计模式大PK
  10. November Matrix的算力革命之路
  11. 谁将打开腾讯业绩增速天花板?
  12. 计算机wps文字背景怎么设置,如何在wps文本中添加背景以及如何将图片设置为页面背景...
  13. 计算机考研一志愿不满,【建议收藏】40所不歧视本科 保护一志愿院校 内含大量985/211!...
  14. JavaScript沙箱(环境,黑盒)
  15. 湖北户外帐篷在野外户外需要注意的方面
  16. 1155低功耗cpu排行_比拼浮点运算速度,超算排行榜是这样“算”出来的
  17. 超详细Office Online Server部署
  18. 实验二 同步时序方式设计_秒表
  19. Cisco路由器的物理模块原理
  20. 如何创建MySQL数据库

热门文章

  1. mysql五:索引原理与慢查询优化
  2. Tomcat 访问manager app报403 解决方案(虚拟机可以正常使用,外面访问报错)
  3. ios为了用户隐私安全,禁止自动播放音频文件的解决办法(微信端)
  4. [BZOJ2753][SCOI2012]滑雪与时间胶囊(特殊的有向树形图)
  5. OBIEE中设置动态变量为列名
  6. MOSS 2007 Search系列
  7. Flash Remoting+ Visual Studio .NET学习总结
  8. 新闻简报(7/18)
  9. python之路_mysql数据操作1
  10. Mac端SVN工具CornerStone详解