图的结构定义 图是由一个顶点集 V 和一个弧集 E构成的数据结构。 Graph = (V , E ) 其中,E = {| v,w∈V 且 P(v,w)} 表示从 v 到 w 的一条弧,并称 v 为弧尾,w 为弧头。谓词 P(v,w) 定义了弧 的意义或信息。 由顶点集和边集构成的图称作无向图。 如果”弧”是有方向的,则称由顶点集和弧集构成的图为有向图。 邻接矩阵 定义...
分类:
其他好文 时间:
2015-01-14 16:56:54
阅读次数:
238
[本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020]
图的邻接表表示法类似于树的孩子链表表示法,就是对图中的每个顶点vi,将所有邻接于vi的顶点链接成一个单链表,这个单链表就称为顶点vi的邻接表。在邻接表中有两种结点结构:头结点(vexdata,firstarc)、表结点(adjvex,nextarc)。
其...
分类:
其他好文 时间:
2015-01-12 00:24:47
阅读次数:
247
红果果的dijstra算法应用,这里采用邻接表存储图。小插曲:while(scanf("%d",&n))提交时内存超限,改成while(scanf("%d",&n)!=EOF)就AC了,不知道为什么dijstra算法应用:已知定点为输入,输入图中所有其他点到该定点的最短距离。具体做法:a.初始时,S...
分类:
其他好文 时间:
2015-01-03 21:01:28
阅读次数:
195
#include #include #include #include #include #include #include #include using namespace std;#define INF 0xfffffff#define maxn 103struct Edge{ int e...
分类:
其他好文 时间:
2014-12-31 15:59:29
阅读次数:
147
先简要列出实现过程中所需要的数据结构。如下图对于这个图而言,它的邻接表可以这样表示,当然表现形式可以多样,这只是我随便画的一种表示方法。 顶点表 边表我们把第一个表即上面标着fixedvex的这个表称作顶点表,后边的称为边表。上图所示,边表的结构应该这样写://...
分类:
其他好文 时间:
2014-12-29 15:06:38
阅读次数:
157
题目大意:给你N个点M条边的图,问:图的最小生成树是否唯一。
思路:参考算法书,在kruskal算法的基础上进行修改,加入(x,y)两点在最小生成树
上路径最长的边的计算。使用了链式前向星记录每个集合中含有那些点。
在合并集合(邻接表)的时候,为了方便,加入了End[]记录邻接表尾节点的位置。
MST表示最小生成树的大小,SecMST表示次小生成树的大小。最后判断是否想等
即可。...
分类:
其他好文 时间:
2014-12-28 00:31:28
阅读次数:
187
最近做图的题比较多,除了克鲁斯卡尔和floyd,像广搜,普里姆,Bellman-Ford,迪杰斯特拉,SPFA,拓扑排序等等,都用到图的邻接表形式。数据结构书上表示邻接表比较复杂,一般形式如下: 1 typedef struct Node 2 { 3 int dest; ...
分类:
其他好文 时间:
2014-12-26 00:48:34
阅读次数:
378
运用五种方式来实现图的存储,以适应不同的情况。
方式1:邻接矩阵
方式2:前向星
方式3:邻接表——动态建表
方式4:邻接表——vector模拟链表实现
方式5:邻接表——链式前向星★...
分类:
其他好文 时间:
2014-12-23 21:11:42
阅读次数:
246
#include #include #define MAXVERTEX 10typedef char VertexType; //顶点类型typedef int EdgeType; //边的类型typedef int ElemType...
分类:
其他好文 时间:
2014-12-21 22:09:06
阅读次数:
168
此图是以图的邻接表法作为储存方式,对图进行深度优先搜索和广度优先搜索(均是非递归)
# include
# include
# define True 1
# define False 0
# define Error -1
# define OK 1
# define MAX_VERTEX_NUM 20
int visited[MAX_VERTEX_NUM];
typede...
分类:
其他好文 时间:
2014-12-17 16:33:23
阅读次数:
245