一起talk C栗子吧(第四十三回:C语言实例--图)
来源:互联网 发布:聚宝盆返奖统计软件 编辑:程序博客网 时间:2024/05/17 20:28
各位看官们,大家好,上一回中咱们说的是哈夫曼编码的例子,这一回咱们说的例子是:图。闲话休提,
言归正转。让我们一起talk C栗子吧!
看官们,提到图,大家可能会想到各种藏宝图,哈哈。不过我们说的图不是藏宝图,它是一种用来存储数
据的数据结构。举个日常生活中的例子:春节回家时,要穿越几个省市才能到家,这时需要选择回家的路
线,于是把回家途中的的省市当作结点,从一个省市到另外一个省市路径当作线。这样就构成了一张回家
图。这么可能比较抽象,我们通过图形来说明,请看下图:
假如我们在城市A,家在城市F,从A到F的途中有城市B,C,D,E。其中两个点之间有连线的表示这两个
城市之间有火车。那么从图中可以看出:回家的路线有以下三种:
A-C-F //经过城市少,回家路途最近A-C-D-F //从城市C到F的车票不好买,需要绕路到城市D,然后才能回家A-B-E-F //经过城市多,而且路途最远。这条路上都是高铁,虽然路途远,但是可能会快一些
大家,通过这个图,我想大家都明白了图这个抽象概念了吧。
接下来我们说说如果在代码中存储图。我们可以二维数组来存放图,二维数组的行数和列数为图中点的个
数,如果两个点A,B之间有路径,那么就把二维数组中A行B列的值设定为1;如果没有路径就设定为0。这
种存储图的二维数组叫作邻接矩阵。下面是刚才例子中图的邻接矩阵,为了方便观察,我把行列的名字使
用点的名字命名,而且值为0的地方没有写出来。
通过邻接矩阵可以方便地表示图,不过它也有一些缺点,大家看看上面的邻接矩阵图,图中有边的地方在
邻接矩阵中就有值,图中无边的地方在邻接矩阵中没有值,这样造成了邻接矩阵中有很多空白的地方。“这
么多的空白不去使用,真是浪费呀”,这位看官说的太对了呀,这就是邻接矩阵的缺点:它会浪费一定的存
储空间,而且当图中边数少的时候更加明显。
各位看官,关于图的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解。
- 一起talk C栗子吧(第四十三回:C语言实例--图)
- 一起talk C栗子吧(第三十三回:C语言实例--巧用移位)
- 一起talk C栗子吧(第六十三回:C语言实例--字符串查找)
- 一起talk C栗子吧(第七十三回:C语言实例--DIY pwd命令)
- 一起talk C栗子吧(第八十三回:C语言实例--进程间通信概述)
- 一起talk C栗子吧(第四回:C语言实例--斐波那契数列)
- 一起talk C栗子吧(第四十四回:C语言实例--深度优先遍历一)
- 一起talk C栗子吧(第四十五回:C语言实例--深度优先遍历二)
- 一起talk C栗子吧(第四十六回:C语言实例--广度优先遍历)
- 一起talk C栗子吧(第四十七回:C语言实例--走迷宫一)
- 一起talk C栗子吧(第四十八回:C语言实例--走迷宫二)
- 一起talk C栗子吧(第四十九回:C语言实例--最小生成树一)
- 一起talk C栗子吧(第五十三回:C语言实例--图的最短路径一)
- 一起talk C栗子吧(第一百一十三回:C语言实例--线程同步之信号量一)
- 一起talk C栗子吧(第一百二十三回:C语言实例--显示变量和函数的地址)
- 一起talk C栗子吧(第三回:C语言实例--求阶乘)
- 一起talk C栗子吧(第五回:C语言实例--数组巧妙赋值)
- 一起talk C栗子吧(第六回:C语言实例--生成随机数)
- C语言类型占多少字节
- 3.2.4 match对象
- 接口
- 单行文本框和多行文本框UiTextfield UiTextView
- IIC总线分析
- 一起talk C栗子吧(第四十三回:C语言实例--图)
- sshfs挂载与ssh无密码登录
- 设计模式简单理解
- EF导航属性真分页查询
- 使用sshfs挂载远程目录
- Editorial Codeforces Round #Pi
- 抽象类
- 盒子(uva-1587)
- Linux实现SSH无密码登录