第6章 图论lz
- 格式:ppt
- 大小:9.49 MB
- 文档页数:75
图论图论图论是数学的⼀个分⽀。
它以图为研究对象。
图论中的图是由若⼲给定的点及连接两点的线所构成的图形,这种图形通常⽤来描述某些事物之间的某种特定关系,⽤点代表事物,⽤连接两点的线表⽰相应两个事物间具有这种关系。
欧拉回路定义边权:离散数学或数据结构中,图的每条边上带的⼀个数值,它代表的含义可以是长度等等,这个值就是边权欧拉路径:如果图中的⼀个路径包括每个边恰好⼀次,则该路径称为欧拉路径。
欧拉回路:⾸尾相接的欧拉路径称为欧拉回路。
dfs(深度优先搜索)深度优先搜索是⼀种在开发爬⾍早期使⽤较多的⽅法。
它的⽬的是要达到被搜索结构的叶结点(即那些不包含任何超链的HTML⽂件) 。
在⼀个HTML⽂件中,当⼀个超链被选择后,被链接的HTML⽂件将执⾏深度优先搜索,即在搜索其余的超链结果之前必须先完整地搜索单独的⼀条链。
深度优先搜索沿着HTML⽂件上的超链⾛到不能再深⼊为⽌,然后返回到某⼀个HTML⽂件,再继续选择该HTML⽂件中的其他超链。
当不再有其他超链可选择时,说明搜索已经结束。
判定由于每⼀条边都要经过恰好⼀次,因此对于除了起点和终点之外的任意⼀个节点,只要进来,⼀定要出去。
⼀个⽆向图存在欧拉回路,当且仅当该图所有顶点度数都为偶数,且该图只有⼀个存在边的连通块。
⼀个⽆向图存在欧拉路径,当且仅当该图中奇点的数量为0或2,且该图只有⼀个存在边的连通块。
⼀个有向图存在欧拉回路,当且仅当所有点的⼊度等于出度。
⼀个混合图存在欧拉回路,当且仅当存在⼀个对所有⽆向边定向的⽅案,使得所有点的⼊度等于出度。
需要⽤⽹络流。
求法我们⽤ dfs(深度优先搜索)来求出⼀张图的欧拉回路。
我们给每⼀条边⼀个 vis数组代表是否访问过,接下来从⼀个点出发,遍历所有的边。
直接dfs并且记录的话会有⼀些问题。
为了解决这个问题,我们在记录答案的时候倒着记录,也就是当我们通过 (u, v) 这条边到达 v 的时候,先把 v dfs 完再加⼊ (v, u) 这条边。
《图论》程序设计目录第一章图的基本概念 2一、图的的定义 2二、图的存储结构 3 第二章图的遍历 5一、深度优先搜索 6二、广度优先搜索8 例、子图划分12 第二章图的生成树14 一、基本概念14 排列方案15 二、图的最小生成树(prim算法) 16 例、机器蛇18 第三章、最短路问题20一、计算单源最短路问题(Dijkstra算法)20二、任意两点间的最短路(floyd算法)23三、最短路径的应用25 例、颜色集28 例计算DAG中的最长路30 例、计算带权有向图的中心31 第四章应用举例32 例、位图32 【例题】士兵排队34 简化图36如果数据元素集合D 中的各元素之间存在任意的前后件关系R ,则此数据结构G=(D ,R )称为图。
奥林匹克信息学联赛的许多试题,需要用图来描述数据元素间的联系,需要用图的经典算法来解题用结点代表城市,每条边代表连接两个城市间的公路,边长的权表示公路长度。
这种公路网的表现形式就是属于图的数据结构。
第一章 图的基本概念一、图的的定义如果数据元素集合D 中的各元素之间存在任意的前后件关系R ,则此数据结构G=(D ,R )称为图。
如果将数据元素抽象为结点,元素之间的前后件关系用边表示,则图亦可以表示为G=(V ,E ),其中V 是结点的有穷(非空)集合,E 为边的集合。
如果元素a 是元素b 的前件,这种前后件关系对应的边用(a ,b)表示,即(a ,b)∈E 。
1、无向图和有向图⑴无向图:在图G=(V ,E )中,如果对于任意的a ,b∈V,当(a ,b)∈E 时,必有(b ,a )∈E(即关系R 对称),对称此图为无向图。
在一无向图中用不带箭头的边连接两个有关联的结点。
在具有n 个结点的无向图中,边的最大数目为n*(n+1)/2。
而边数达到最大值的图称为无向完全图。
在无向图中一个结点相连的边数称为该结点的度,无向完全图中,每一个顶点的度为n-1。
⑵有向图:如果对于任意的a ,b∈V,当(a ,b)∈E 时 ,(b ,a)∈E 未必成立,则称此图为有向图。