计算机科学入门资料之一的《算法与数据结构-C语言版》,覆盖了基础算法的几乎所有分支,其中的一个典型分支为图理论。

一个简介:图论基础-图数据结构基础

一个简洁的博客:图论基础,简列一本书

前言:

图论〔Graph Theory〕是数学的一个分支。它以为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系 ,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。

有向图和无向图有严格的集合论定义。在通常状况下,区分图的有向和无向的区别在于边的有向性。以邻接矩阵存储相邻关系的数据描述中,邻接矩阵的对称性是无向图的必要非充分条件。

下面再次梳理一下两种图的经典算法,不能记混了。

有向图的基本算法:

拓扑排序(数据结构之拓扑排序)、联通分量、最短路径(Dijkstra算法和Floyd算法)。

无向图的基本算法:

最小生成树(Prime算法。Kruska算法)、DFS、BFS、MFS、最短路径、最大连通图、强联通分量。

环的查找算法:

查找所有环、亏格(最小子环的个数)的寻找、最大环寻找。

查找所有环的算法C++: 找出无向图中所有环的算法

曲面三角化算法

曲面三角化:三角剖分算法的数学理解

图论 Make Unique:有向图和无向图的一些算法的更多相关文章

  1. 概率图模型之有向图与无向图之间的关系 I map D map perfect map(完美图) 概念

    我们已经讨论了有向图和无向图框架下的概率模型,那么我们有必要讨论一下它们二者的关系.

  2. 『图论』有向图强连通分量的Tarjan算法

    在图论中,一个有向图被成为是强连通的(strongly connected)当且仅当每一对不相同结点u和v间既存在从u到v的路径也存在从v到u的路径.有向图的极大强连通子图(这里指点数极大)被称为强连 ...

  3. tarjan——有向图、无向图

    强连通块只存在于有向无环图DAG中 实际上low[i]的理解是:一个强连通块在dfs搜索树中子树的根节点 //把一个点当成根提溜出来,抖搂抖搂成一棵树 void dfs(int u) { //记录df ...

  4. 51nod图论题解(4级,5级算法题)

    51nod图论题解(4级,5级算法题) 1805 小树 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 她发现她的树的点上都有一个标号(从1到n),这些树都在空 ...

  5. 有向图强连通分量的Tarjan算法

    有向图强连通分量的Tarjan算法 [有向图强连通分量] 在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected).如果有向图G的每两个顶点都强连通,称G ...

  6. 有向网络(带权的有向图)的最短路径Dijkstra算法

    什么是最短路径? 单源最短路径(所谓单源最短路径就是只指定一个顶点,最短路径是指其他顶点和这个顶点之间的路径的权值的最小值) 什么是最短路径问题? 给定一带权图,图中每条边的权值是非负的,代表着两顶点 ...

  7. Union-Find 检测无向图有无环路算法

    不相交集合数据结构(Disjoint-set data structure)是一种用于跟踪集合被分割成多个不相交的子集合的数据结构,每个集合通过一个代表来标识,代表即集合中的某个成员. Union-F ...

  8. 算法笔记_144:有向图强连通分量的Tarjan算法(Java)

    目录 1 问题描述 2 解决方案 1 问题描述 引用自百度百科: 如果两个顶点可以相互通达,则称两个顶点强连通(strongly connected).如果有向图G的每两个顶点都强连通,称G是一个强连 ...

  9. hdu2767 Proving Equivalences,有向图强联通,Kosaraju算法

    点击打开链接 有向图强联通,Kosaraju算法 缩点后分别入度和出度为0的点的个数 answer = max(a, b); scc_cnt = 1; answer = 0 #include<c ...

随机推荐

  1. TortoiseGit推送失败的问题

    网络的SSH修改为使用git默认的ssh客户端,而不是tortosieGit提供的客户端 修改成这样 下面的本机凭证修改为当前用户 然后直接使用右键->git同步 在推送url上填写远程的url ...

  2. 【CV论文阅读】Going deeper with convolutions(GoogLeNet)

    目的: 提升深度神经网络的性能. 一般方法带来的问题: 增加网络的深度与宽度. 带来两个问题: (1)参数增加,数据不足的情况容易导致过拟合 (2)计算资源要求高,而且在训练过程中会使得很多参数趋向于 ...

  3. Solidworks如何整体缩放零件

    比如我有一个飞机模型,当前长度有20000mm,即20M,我想要整体缩放   点击插入-特征-缩放比例   在左侧的框中输入所有要缩放的零部件(如果全部缩放,则全部框选所有零件,就可以把所有零件都放到 ...

  4. HDU 5358 多校第6场 First One

    First One Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Tota ...

  5. uboot arp地址解析

    common/cmd_cache.c int do_getmac(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) {     //usend d ...

  6. 转 java面试题

    ● 简述synchronized?Object:Monitor机制: ● 简述happen-before规则 : ● JUC和Object : Monitor机制区别是什么 : 简述AQS原理 : ● ...

  7. 布局技巧4:使用ViewStub

    多亏了<include />标签,在Android里,很容易就能做到共享和重用UI组件.在Android开发中,很容易就能创建出复杂的UI结构,结果呢,用了很多的View,且其中的一些很少 ...

  8. YTU 2732:3798-Abs Problem

    2732: 3798-Abs Problem 时间限制: 1 Sec  内存限制: 128 MB  Special Judge 提交: 167  解决: 60 题目描述 Alice and Bob i ...

  9. 【关键字】volatile

    volatile 修饰的关键字,确保编译器不对成员变量进行任何优化: private volatile double d; // No optimization

  10. bzoj3663

    几何+lis 很巧妙.直接做很困难,那么我们转化一下,把每个点能看见的圆弧画出来.只有这些圆弧相交时才满足条件. 那么也就是找出圆上尽量多两两相交的区间. 所以我们先按左端点极角排序,然后固定一个必须 ...