1. 图的定义: Graph = (V, E)
表示图由顶点集和边集组成
2. 图的存储结构:常用的主要有 邻接矩阵和邻接表, 还有十字链表和邻接多重表等
邻接矩阵, 如 graph[i][j] = cost , 表示顶点i到顶点j的距离是cost
邻接表 数据结构表示
typedef struct arc
{
int m_adjVertex;
// 邻接顶点的...
分类:
编程语言 时间:
2015-02-07 17:29:25
阅读次数:
266
上一篇写了DFS的邻接矩阵和邻接表的,这篇再写一下BFS的
先大概讲一下BFS , 全名广度优先搜索,没有回溯和探查,逐层遍历,采用队列实现
先访问当前顶点v, 然后访问v的各个未被访问过的邻接顶点,然后在一次访问v的各个邻接顶点的未被访问的邻接顶点
代码实现如下 :
void BFS (Graph &G , int v ) {
int i , w , n = G.Number(); /...
分类:
编程语言 时间:
2015-02-07 17:29:05
阅读次数:
183
取自 1976 Ullmann Part2Naive alogrithm for Subgraph Isomorphism.1. 如何判定子图同构。 有个Gα和Gβ, Gα有pa个点,qa条边,Gβ有pb个点,qb条边。A是Gα的邻接矩阵,相应的B是Gβ的邻接矩阵。那么如何判断同构呢。设A是子图,....
分类:
编程语言 时间:
2015-02-07 00:28:18
阅读次数:
263
题目大意:有一段深搜的代码,是遍历一个邻接矩阵,然后输出一个序列,这个邻接矩阵的原形是一棵树,那么现在就是要你根据序列,求出最多有多少个不同的树遍历之后可以得到相同的序列。
思路:这道题属于简单的区间DP,仔细点想就可以了。
第一种方法也是最直接的思路。
令dp[i][j]表示的是以i这个点为根,其余点为它的子树时,符合条件的最大个数。
从样例可以想到
1 2 3由于3和2交换之后,依然...
分类:
其他好文 时间:
2015-02-04 16:31:47
阅读次数:
160
1.Dijkstra算法(计算正权图上的单源最短路 single-sourceshortest paths (sssp) )从单个节点出发到所有节点的最短路。该算法适用于:有向图和无向图。1). O(n^2)的实现:邻接矩阵map存储实现,INF表示无穷大void Dijkstra(int s, i...
分类:
编程语言 时间:
2015-02-04 16:11:12
阅读次数:
253
有向图 在有向图中,结点对<x ,y>是有序的,结点对<x,y>称为从结点x到结点y的一条有向边,因此,<x,y>与<y,x>是两条不同的边。有向图中的结点对<x,y>用一对尖括号括起来,x是有向边的始点,y是有向边的终点,有向图中的边也称作弧。无向图 在无向图中,结点对(x,y)是无序的,结点.....
分类:
编程语言 时间:
2015-02-03 12:36:04
阅读次数:
243
两次DFS求树中的最长路。基于邻接矩阵:代码:#include #include #include #include #include #include using namespace std;bool map[10001][10001];int n;int tail;bool vis[1001];...
分类:
其他好文 时间:
2015-02-02 21:12:03
阅读次数:
170
prime算法的使用package PrimeApplication;import java.util.Scanner;/** * 农民要建立互联网络,目的使村庄里所有的农民连上网,并且总费用最小。 * 多组数据,每组数据给出一个n, * 然后给出n * n大小的无向图的邻接矩阵表示,值表示边...
分类:
编程语言 时间:
2015-02-01 21:39:03
阅读次数:
172
链接:click here
题意:给出n个河流,m个点,以及每个河流的流量,求从1到m点的最大流量。
思路:最裸的网络流题目 意思就是求从源点到汇点的最大流。
第一道网络流,一边看着书上的介绍,一边敲下代码:
用的是网络流算法ford-fulkerson
题目数据量小,邻接表和邻接矩阵都可以过
代码:
#include //最大流 入门
#include
#inc...
分类:
其他好文 时间:
2015-02-01 17:48:47
阅读次数:
236
图就是由一些顶点和连接这些顶点的边组成的。
例如上图就是由5个顶点(1、2、3、4、5)和5条边(1-2、1-3、1-5、2-4、3-5)组成。
我们从1号顶点开始遍历这个图,遍历就是把图的每一个顶点都访问依次。
深度优先遍历的结果:
遍历顺序为:
深度优先遍历的思想:
首先以一个未被访问过的顶点作为起始顶点,沿着当前顶点的边走位未访问过的顶点;当没有未访问过的顶点...
分类:
其他好文 时间:
2015-01-30 16:02:42
阅读次数:
125