![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
onlyxinbaby
这个作者很懒,什么都没留下…
展开
-
宽度优先搜索bfs
好吧,今天看了bfs,其实发现基本思想也是不过如此。只是,应用还是不太会。bfs是宽度优先,从根节点开始,依次访问它的所有邻接点,然后再按顺序访问邻接点的邻接点,先被访问的点的邻接点先被访问。由于要按这样的顺序访问,所以需要用到队列。求最短路径和迷宫类型的题目都可以利用Bfs.下面是基本步骤:1)从图中的某个顶点v出发,访问v。2)依次访问V的各个没有被原创 2017-02-27 21:43:40 · 308 阅读 · 0 评论 -
最小生成树
算法一:Prim算法(可称为加点法) 点集记为v。 定义一个集合U,来存储已经在生成树中的点。v-u是未在生成树中的点。定义一个closedge数组,分为两个区域,一个存储最小边在u中的顶点,另一个存储最小边的权值。将初始顶点加入U中,初始化closedge数组。选择最小边closedge[k],将K加入集合U,输出此边。更新closedge[]的值,选择集合V-U中点到k和u之间较小的哪原创 2017-02-28 18:12:46 · 323 阅读 · 0 评论 -
最短路Floyd算法
先说一下我觉的比较简单的一个吧,至少看起来是很简单也比较容易理解,就是Floyd算法。该算法是用来求多源最短路的算法,也就是说,求图中任意两个点之间的最短路。 他的主要思想就是初始状态是所要求最短路的起点和中点,然后不停地将其他点往这两个顶点之间加。 首先要用一中数据结构来存储图吧,一般来讲还是用邻接矩阵。m[i][j]表示由i到j的最短路。当i==j的时候赋为0,如果原创 2017-03-08 22:18:32 · 172 阅读 · 0 评论 -
油田问题(dfs)
一个很经典的油田问题:输入一个m行n列的字符矩阵,输出统计字符@组成多少个八连块。如果两个@相邻(横竖对角线方向),那么他们属于同一个八连快。例如下图中有4个八连块。 *****@ @*****原创 2017-02-09 21:26:58 · 1036 阅读 · 0 评论 -
深度优先搜索(dfs)
深度优先搜索的一般步骤:1)从顶点V出发,访问v。2)找出刚才访问过的顶点的第一个未被访问的邻接点,访问该顶点。以该顶点为新顶点,重复此步骤,直到刚访问的顶点没有没有未被访问过的邻接点为止。3)返回前一个访问过的仍有未被访问过的邻接点的顶点,找出该顶点的下一个未被访问过的邻接点,访问该顶点。4)重复2)3)步骤,直到所有点都被访问过。搜索结束。(图的存储原创 2017-02-26 22:58:54 · 705 阅读 · 0 评论 -
最短路 Dijkstra算法
这是一类求单源最短路的算法,也就是求某一个顶点到其他所有顶点的最短路。它是按照最短路径递增的顺序来计算的。 先说一下大体思路:将图中的顶点分为两个集合,S,V-S。S存储已经求出最短路径的顶点,V-S存储未求出最短路的顶点。然后算法就是不断额的求出V-S中顶点的最短路,然后把它加入S中,直到所有顶点的最短路都求出,也就是V-S是空集。 选择邻接矩阵的数据结构来存储图。 下面先交原创 2017-03-09 21:53:13 · 215 阅读 · 0 评论 -
图论之拓扑排序
DAG图:有向无环图,是描述一项工程或系统的进行过程的有效工具。一般的工程可以分为若干个活动,而这些活动之间存在着某种约束条件,也就是说某一项工程的进行必须在另一项工程的完成的前提之下完成。比如说:只有学完高数和C语言才能学数据结构。(不然学不会)2333AOV网:用顶点表示活动,用弧表示活动中的优先关系的有向图,也称为顶点表示活动的网。(这里书中讲到几个概念:前驱,后继,直接前驱原创 2017-05-15 22:32:59 · 624 阅读 · 0 评论