在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。
求割点与桥的算法是R.Tarjan发明的,本文用邻接矩阵存储图的信息,实现了递归和非递归两种算法。 感觉非递归算法或许有更好的表达,但一时想不出来,请大牛指点,谢谢!...
分类:
其他好文 时间:
2014-11-21 23:22:51
阅读次数:
408
一、图的存储结构
1.1 邻接矩阵
图的邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(邻接矩阵)存储图中的边或弧的信息。
设图G有n个顶点,则邻接矩阵是一个n*n的方阵,定义为:
看一个实例,下图左就是一个无向图。
从上面可以看出,无向图的边数组是一...
分类:
其他好文 时间:
2014-11-16 18:43:59
阅读次数:
291
一.邻接矩阵存储方法 邻接矩阵是表示顶点之间相邻关系的矩阵。设G=(V,E)是具有n个顶点的图,顶点的顺序依次是(v0,v1,v2,.....vn-1),则G的邻接矩阵A是n阶方阵: 若A是无向图,A[i][j]=1,表示i,j之间有一条边,i到j可达且j到i可达。若A是无向图,A[i][j]=.....
分类:
其他好文 时间:
2014-11-14 22:34:30
阅读次数:
225
这题是某年成都区域赛网络赛的一题。 这题思路非常easy,可是从时间上考虑,不妨不要用矩阵存储,我用的链式前向星。 採用线上查询。利用map对字符串编号,由于非常方便。要推荐的朋友,事实上就是朋友的朋友(这里指的是直接朋友,图中即指有直接边相连的)。 所以在寻找时,仅仅须要查找朋友...
分类:
Web程序 时间:
2014-10-04 19:46:37
阅读次数:
220
如上图,我们可以把v0标记为0,v1标记为1。。。。
并把联通的2点权值全设置为1,那么可以用邻接矩阵(右图)来表示
概念解析:
第一个邻接顶点:
我们以vo为例,第一个邻接顶点为V1(其实也可以使V3,只不过考虑计算机的存储顺序,我们找邻接顶点,一般是从v0扫描到v3,所以我们先在内存中扫描到v1)
下一个邻接顶点:
我们以v0为例,下一个邻接顶点就是v3(同样,其实也可以使V1,只...
分类:
其他好文 时间:
2014-10-03 01:41:43
阅读次数:
836
深度广度遍历搜索的定义想必大家都能熟练的掌握了,下面我就通过一个图的实例,把应用的代码直接贴上供大家参考,以后可以直接借鉴或者使用。
#include
#include
#include "Queue.h"
using namespace std;
//图的邻接矩阵存储表示
#define INFINITY INT_MAX
#define MAX...
分类:
其他好文 时间:
2014-09-06 09:45:43
阅读次数:
308
这题是某年成都区域赛网络赛的一题。
这题思路很简单,但是从时间上考虑,最好还是不要用矩阵存储,我用的链式前向星。
采用线上查询。利用map对字符串编号,因为很方便。要推荐的朋友,其实就是朋友的朋友(这里指的是直接朋友,图中即指有直接边相连的)。
所以在寻找时,只需要查找朋友的朋友,并计数。
注意:在输出时不能有对于的空格。...
分类:
Web程序 时间:
2014-08-30 17:49:49
阅读次数:
208
一、图的存储结构1.1 邻接矩阵 图的邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(邻接矩阵)存储图中的边或弧的信息。 设图G有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: 看一个实例,下图左就是一个无向图。 从上面可以看出,无向图的边数组是一个对称矩...
分类:
其他好文 时间:
2014-08-29 17:34:58
阅读次数:
258
图有四种存储结构:数组,邻接表,十字链表,邻接多重表。下面以数组为存储结构来实现图的深度优先搜索遍历和广度优先搜索遍历。其中广度优先搜索遍历中有用到STL中的queue,注意头文件的包含。具体代码如下:
//图的数组(邻接矩阵)存储表示和深度优先遍历
const int MAX_VERTEX_NUM=20; //最大顶点数
typedef enum {DG,DN,UDG,UDN} Graph...
分类:
其他好文 时间:
2014-08-08 12:39:35
阅读次数:
224