图的存储结构(邻接矩阵)
图的存储结构
图的存储结构相比较线性表与树来说就复杂很多。
对于线性表来说,是一对一的关系,所以用数组或者链表均可简单存放。树结构是一对多的关系,所以我们要将数组和链表的特性结合在一起才能更好的存放。
那么我们的图,是多对多的情况,另外图上的任何一个顶点都可以被看作是第一个顶点,任一顶点的邻接点之间也不存在次序关系...
分类:
其他好文 时间:
2014-10-10 00:31:51
阅读次数:
443
一、最短路问题
1、图的存储方式
2、Floyd算法求多源最短路
3、Dijsktra算法求单源最短路
4、Bellman-Ford算法求单源最短路
5、SPFA求单源最短路
(1)Wikioi 1173 最优贸易
题目描述 Description
【问题描述】
C 国有n 个大城市和m 条道路,每条道路连接这n 个城市中的某两个城市。任意两个
城市之间最多只有一条道路直...
分类:
其他好文 时间:
2014-09-06 09:46:33
阅读次数:
216
一、图的存储结构1.1 邻接矩阵 图的邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(邻接矩阵)存储图中的边或弧的信息。 设图G有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: 看一个实例,下图左就是一个无向图。 从上面可以看出,无向图的边数组是一个对称矩...
分类:
其他好文 时间:
2014-08-29 17:34:58
阅读次数:
258
1. 图2. 图的存储结构2.1 数组表示法(邻接矩阵表示法)2.2 邻接表2.3 十字链表2.4 邻接多重表1. 图顶点:图中的数据元素。V是顶点的有穷非空集合。弧:表示从v到w的一条弧,v为弧尾,w为弧头。VR是两个顶点关系的集合。无向图:若∈VR,必有∈VR,则此图为无向图。有向图:无上述关系...
分类:
其他好文 时间:
2014-08-19 23:43:05
阅读次数:
433
高斯模糊函数的升级版本,带剪裁区域。
函数check_rect()是处理剪裁区域矩形。如果不打算剪裁,只需要设置left, top, right, bottom都为0就可以了;另外位图的存储格式是上下反转的,如果正常剪裁的话,只需要设置bottom为 -bottom即可。...
分类:
其他好文 时间:
2014-08-01 16:10:51
阅读次数:
310
天气越来越热,看书还得静得下心啊,今天继续图这一章,概念和算法众多,第一遍看以广度优先的形式为主,以后若要用到具体的算法再去翻“算法导论”吧。下面是学习内容和笔记。图(graph)1.图的存储结构邻接矩阵:顶点数组+边数组(二元);无向图的边数组为对称矩阵,有向图..
分类:
其他好文 时间:
2014-07-13 14:32:18
阅读次数:
214
邻接表:邻接表是图的一种链式存储结构。在邻接表中,对图中每个顶点建立一个单链表,第i个单链表中的节点表示依附于顶点vi的边(对有向图是以顶点vi为尾的弧)。每个结点有三个域组成,其中邻接点域指示与顶点vi邻接的点在途中的位置,链域指示下一条边或者弧的结点;数据域存储和边或者弧相关的信息,如权值等。每个链表上附设一个表头结点。在表头结点中,除了设置链域指向链表第一个结点之外,还设置有存储顶点vi的名...
分类:
其他好文 时间:
2014-06-27 10:30:19
阅读次数:
277
邻接矩阵:用两个数组分别存储数据元素(顶点)的信息和数据元素之间的关系(边或弧)的信息。
比如考虑下面这个有向图:
如果用邻接矩阵存储可以表示为:
1.顶点数组:
2.邻接矩阵:
图的遍历:
深度优先(DFS):
深度优先搜索遍历类似于树的先根遍历,是树的先根遍历的推广。假设初始状态是图中所有顶点未曾访问过,...
分类:
其他好文 时间:
2014-06-24 15:48:29
阅读次数:
300
#include#include#includeint k,h[110],mark;struct M{ int data; struct M *next;}*head[110];void init(){ int i; for(i = 0; i next = NULL; ...
分类:
其他好文 时间:
2014-06-17 00:58:16
阅读次数:
315
图的【十字链表】表示法是一种链式存储结构,可以看成是【邻接表】和【逆邻接表】的组合本文中用到的有向图/************************************************************************有向图的存储:十字链表有向图的十字链表存储结构,是有一...
分类:
其他好文 时间:
2014-06-04 18:13:33
阅读次数:
383