2017年 1月15日 欧拉回路 学习整理

欧拉回路

欧拉通路: 通过图中每条边且只通过一次,并且经过每一顶点的(顶点并不要求都应经过一遍)

欧拉回路: 通过图中每条边且只通过一次,并且经过每一顶点的回路

有向图的基图:忽略有向图所有边的方向,得到的无向图称为该有向图的基图。

无向图

设G是连通无向图,则称经过G的每条边一次并且仅一次的路径为欧拉通路;

如果欧拉通路是回路(起点和终点是同一个顶点),则称此回路是欧拉回路

具有欧拉回路的无向图G成为欧拉图

有向图

(1)设D是有向图,D的基图连通,则称经过D的每条边一次并且仅有一次的有向路径为 有向欧拉通路

(2)如果有向欧拉通路是有向回路,则称此有向回路为  有向欧拉回路

(3)具有有向欧拉回路的图D称为有向欧拉图

定理

无向图G存在欧拉通路的充要条件是:G为连通图,并且G仅有两个奇度结点(度数为奇数的顶点)或者无奇度结点。

推论

(1) 当G是仅有两个奇度结点的连通图时,G的欧拉通路必以此两个结点为端点;

(2)当G是无奇度结点的连通图时,G必有欧拉回路

(3)G为欧拉图(存在欧拉回路)的充分必要条件是  G为无奇度结点的连通图

(有向图) 定理

有向图D存在欧拉通路的充要条件是:D为有向图,D的基图连通,并且所有顶点的出度与入度相等;或者  除两个顶点外,其余顶点的出度与入度都相等,而这两个顶点中一个顶点的出度与入度之差为1,另一个顶点的出度与入度之差为-1.

推论

(1)当D除出、入度之差为1,-1的两个顶点之外,其余顶点的出度与入度相等时,D的有向欧拉通路必以出、入度之差为1的顶点作为始点,以出、入度之差为-1的顶点作为终点。

(2)当D的所有顶点的出、入度都相等时,D中存在有向欧拉回路。

(3)有向图D为有向欧拉图的充要条件是  D的基图为连通图,并且所有顶点的出、入度都相等。

欧拉回路的求解

两种方法:(1)DFS搜索  (Fleury)佛罗莱算法

(1)DFS搜索 思想求解欧拉回路的思路为:利用欧拉定理判断出一个图存在欧拉通路或欧拉回路后,选择一个正确的起始顶点,用DFS算法遍历所有的边(每条边只遍历一次),遇到走不通就回退。在搜索前进方向上将遍历过的边按顺序记录下来。这组边的排列就组成了一条欧拉通路或回路。

(2) (Fleury)佛罗莱算法

设G为一个无向欧拉图,求G中一条欧拉回路的算法如下:

(1) 任取G中一顶点v0,令P0=v0;

(2)假设沿Pi=v0e1v1e2v2......eivi走到顶点vi,按下面方法从E(G)-{e1,e2,...,ei}中选ei+1。

ei+1与vi相关联

除非无别的边可供选择,否则ei+1不应该是Gi=G-{e1,e2,...,ei}中的桥。

(3)当(2)不能再进行时算法停止。

可以证明的是,当算法停止时,所得到的简单回路Pm=v0e1v1e2v2......emvm,(vm=v0)为G中一条欧拉回路。

备注知识:

设无向图G(V,E)为连通图,若边集E1属于E,在图G中删除E1中所有的边后得到的子图是不连通的,而删除了E1的任一真子集后得到的子图是连通图,则称E1是G的一个割边集。若一条边构成一个割边集,则称该边为割边,或桥

DFS方法代码样例:

 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #define N 105
 5 using namespace std;
 6 int n,m,map[N][N],du[N],pre[105],step=0;
 7 void dfs(int start){
 8     for(int i=1;i<=n;i++){
 9         if(map[start][i]==1){
10             map[start][i]=map[i][start]=0;
11             dfs(i);
12         }
13     }
14     pre[++step]=start;
15 }
16 int main()
17 {
18     scanf("%d%d",&n,&m);
19     int u,v;
20     memset(map,0,sizeof(map));
21     for(int i=1;i<=m;i++){
22         scanf("%d%d",&u,&v);
23         map[u][v]=map[v][u]=1;
24         du[u]++;du[v]++;
25     }
26     int k=0,start=1;
27     for(int i=1;i<=n;i++){
28         if(du[i]%2==1) k++,start=i;
29     }
30     if(k==0) printf(" G is a oula huilu\n");
31     if(k==2) printf(" G is a oula tonglu\n");
32     if(k!=0&&k!=2) {printf(" G is not a oula tu\n"); return 0;}
33     dfs(start);
34     printf("start is %d\n",start);
35     for(int i=1;i<=step;i++)
36       printf("%d ",pre[i]);
37     return 0;
38 }
时间: 2025-01-20 00:06:05

2017年 1月15日 欧拉回路 学习整理的相关文章

2017年 1月 15日 指针 学习整理

有关指针的概念: 指针是一个特殊的变量,它里面存储的数值被解释为内存里的一个地址. FIrst of all:我们需要明确目标 关于指针的学习以及使用我们需要搞清楚有关指针的四个内容:指针的类型,指针所指向的类型,指针的值(或者说叫指针所指向的内存区),还有指针本身所占用的内存区(指针也是一个特殊的变量吗,它肯定也是占据内存的).接下来让我们分别进行学习. 我们先来申明几个指针的例子: 1 int *ptr; 2 char *ptr; 3 int **ptr; 4 int (*ptr)[3];

5月15日上午学习日志

2017年5月15日上午把昨天记忆的英语单词的多种词意用自己组句的方法联系起来再记忆一遍,然后再联系真题学10个考研高频词汇,然后再复习昨天的词汇,听外教讲授Eclipse 的课程.

(X6支持https)2017年9月15日友价T5X6商城站长交易源码仿互站送手机版程序8套模版

(https专版)2017年9月15日友价T5X6商城站长交易源码仿互站送手机版程序8套模版 修复官方版本的各种问题,, 安装步骤,1.将源码上传到主机,2.专入数据库文件.依次导入codes_170915.sql codes_data.sql codes_data_city.sql后台用户名密码: admin admin123 友价源码 X620170915补丁(主要修复https SSL及兼容问题) 以下是本次补丁的升级内容: 1.修复https微信登录功能2.手机版SSL错误,兼容http

【烟雨谜曼群】2017年4月15日山涧流水主擂谜会题

[烟雨谜曼群]2017年4月15日山涧流水主擂谜会题 1.男生女生,共同加油(中国河流)黄河2.炎黄子孙了不起(金融机构简称 4字)中国人行3.祖国永远是花季(陕晋吉地名各一 4字)华.夏.长春4.老板出资办谜会(四字称谓)主赞助商5.广西赞歌(屈原篇目)桂颂6.莫忘欢乐时(二字称谓)娱记7.全部说岳(安徽名胜)齐云山8.家有藏书十万卷(央视主持人)居文沛9.水中鱼两尾,枝头鸟一对(国产手机)小米10.成功属于建设人(相声演员)郑健11.营囗出品中国结(10笔字)莹12.水手相邀上抚河(唐代诗僧

【天一家园群】2017年4月15日《浦东谜刊》百家谜会展猜8谜题

[天一家园群]2017年4月15日<浦东谜刊>百家谜会展猜8谜题 1.虎年改变旧面貌(三字词)树新风/石彧2.黄河之水天上来(成语)源远流长/石彧3.三代挖煤做马牛(银行用语)长期无息/石彧4.日日待漏朝君王(教育用语)天天向上/石彧5.阿谀奉承拍马屁(菜谱)溜三样/石彧6.海浪你轻轻地摇(世界女排名将)卡波特/石彧7.人面桃花相映红(美术名词)对比色/石彧8.老君下凡不炼丹(中成药)回天再造丸/石彧9.月光如水水如天(中国地名)三明/石彧10.停车坐爱枫林晚(花名)对红/石彧11.乱落梨花飞

【银河灯谜群】2017年4月15日天外来客主擂谜会题

[银河灯谜群]2017年4月15日天外来客主擂谜会题 1.雷起自须封一路(节气)白露2.今日人多莫奢侈(节气)大暑3.前年梅开满一江(市名)珠海4.宋朝纳赂更心寒(电器品牌)赛格5.上台得了一百分(广州地名)白云6.但见廉洁者,终究是赢家(泊人二2+2)张清.白胜7.一一脱困聚水泊(酒名)湘泉8.中原客先到,一一作安排(节气)夏至9.送别孙子,老头日日牵挂(节气)小暑10.金殿乏计平暴乱(国名二2+3)朝鲜.安道尔11.辗转半生,首次进京(甘肃地名)平凉12.何苦用此着?自古不曾见(国名)荷兰1

【松陵文虎群】2017年4月15日尤丽雅(天阶石)主擂谜会题

[松陵文虎群]2017年4月15日尤丽雅(天阶石)主擂谜会题 试铃题:1.群龙无首(四字称谓)少当家的2.奉承皇后(鲁迅小说人物)阿Q正式题:1.卫母(网站名)驴妈妈2.删除键(三字电子元件,卷帘)LED3.膝盖置换手术(三字外假期)复活节4.黄歇佚史(四字书名)春申旧闻5.演技浮夸(四字物理名词)表面张力6.马腾三儿名是啥?(泊号,卷帘)铁叫子7.番芥蓝炒得太腻了(植物,卷帘)油菜花8.大王叫我来巡山(称谓二)主教.看守9.不收交易费(2字江苏地名)无锡10.日本海盗先后来(字)温11.驯马绝

【南通群艺谜社群】2017年4月15日莫志刚主擂谜会谜题

[南通群艺谜社群]2017年4月15日莫志刚主擂谜会谜题 1.岩冬高挺迎客松(字一)峰2.“落红不是无情物”(酒名冠产地)绍兴花雕清·龚自珍<己亥杂诗>.3.风雨交加老树间(字一)澎4.“岂肯低头跪妇人”(生理现象一)男性勃起京剧<桑园会>唱词.5.自始迷台好用心(字一)哞6.“同时采择百余人”(赛场称谓一)拉拉队长唐·白居易<上阳白发人>.7.打开镜框白思儿(字一)兜8.“论功还欲请长缨”(部队称谓一)军事将领唐·祖咏<望蓟门>:“将”由jiàng异读成j

2017年3月30日上午学习日志

2017年3月30日上午复习了高等数学,学习高等数学教材书第二章第一节导数概念,并按照自己的思路记笔记,并背英语单词及其语法.