要完整地表示一个图,就需要明确图中有什么,很简单,节点和边。 所以,在用邻接表表示一个图的时候,我们需要分别表示其节点和边,然后用边将节点连接起来即可。 使用邻接表,文字上的描述就是,将所有节点放入一张邻接表中,对于每个节点的邻接节点,用一个链表将其连接起来。1 邻接表中边、节点、图定义 1...
分类:
其他好文 时间:
2015-10-19 16:52:15
阅读次数:
223
深度优先搜索(DepthFirstSearch,DFS):voidDFS(VertexV){visited[V]=true;for(V点的每个邻接点W)if(!visited[W])DFS(W);}若有N个顶点、E条边,时间复杂度是用邻接表存储图,有O(N+E)用邻接矩阵存储图,有O(N2)广度优先搜索(BreadthFirstSearch,BFS)voidBFS(VertexV){visited[V]..
分类:
其他好文 时间:
2015-09-16 01:07:28
阅读次数:
186
邻接矩阵: 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 typedef char VertexType[4]; 8 typedef int VRtype; 9 #define INF 1000...
分类:
其他好文 时间:
2015-09-15 18:15:28
阅读次数:
135
这题其实很简单的说,第一次用邻接表来存图= =首先图的储存结构是结构体+head数组。。。其实head数组保存的struct node{ int v; int next;}V[200*200];假设现在有u节点,v表示的是和他邻接的点,next保存的是v对应的编号,head数组保存的是链...
分类:
其他好文 时间:
2015-09-10 19:30:22
阅读次数:
121
给一个家谱,回答给的操作结果。 1)L 按照字典序排序儿子,输出整个家谱。 2)b 求出所给name的所有兄弟。 3)c 求出两个name的LCA读入数据时,我用一个curfather数组维护固定深度的爸爸,之后就可以方便的将所给的数据形式转换成邻接表建图,同时使用map存储name和id号。...
分类:
其他好文 时间:
2015-09-08 22:03:46
阅读次数:
224
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3478题目可以抽象成判断给的图是否是二分图,如果是则不满足条件,不是则满足。前提是图是个连通图,因此要额外判断此图是否联通。用染色法判断是否是二分图,注意点的数量太多,用邻接表存。可以用并查集判断是否联通...
分类:
其他好文 时间:
2015-09-07 22:50:24
阅读次数:
188
1 #include 2 #include 3 #include 4 using namespace std; 5 const int maxn=1100; 6 const int maxm=maxn*maxn/2; 7 int n,m; 8 int head[maxn],nxt[maxn],pn....
分类:
其他好文 时间:
2015-09-07 10:58:08
阅读次数:
178
邻接表是图的一种最主要存储结构,用来描述图上的每一个点。参见http://baike.baidu.com/view/549594.htm再给你看一下数据结构的课件解释第二个图是个标准的邻接表实例 右上角是图,共有5个点,v1到v5按照每个点来建立单链表组成邻接表。首先 以v1作为头结点,和v1相邻的...
分类:
其他好文 时间:
2015-09-06 18:11:16
阅读次数:
211
前言:学习图的遍历算法之前,需要先了解一下图的存储方式(这里只以无向图作为讨论了)。(1)邻接矩阵(2)邻接表一、DFS(深度优先遍历)设置一个visited数组防止重复遍历,DFS主要利用的是栈结构邻接矩阵的遍历#includeusing namespace std;const int n=4;/...
分类:
编程语言 时间:
2015-09-06 16:03:09
阅读次数:
188
DES:计算输的最小费用。如果不能构成树。输出-1。每条边的费用=所有的子节点权值*这条边的权值。计算第二组样例可以知道树的费用是所有的节点的权值*到根节点的最短路径的长度。用dij的邻接矩阵形式直接MLE。编译都通不过。换邻接表的形式。然后。。。。模板。。。#include#include#inc...
分类:
其他好文 时间:
2015-09-05 22:22:52
阅读次数:
338