2+二+图与遍历算法+习题参考答案
更新时间:2023-10-15 00:30:01 阅读量: 综合文库 文档下载
- 图的遍历算法推荐度:
- 相关推荐
第二章部分习题参考答案
1.证明下列结论:
1)在一个无向图中,如果每个顶点的度大于等于2,则该图一定含有圈; 证明:设无向图最长的无重复顶点的迹P?V0V1?Vk,(若含有重复顶点,则取重复顶点及其之间的点,即可构成一个圈)。由于每个顶点度大于等于2,故存在与V1相异的点V'与V0相邻,若V'?P,则得到比P更长的迹,与P的取法矛盾。因此,V'?P,从而V0V1?V'V0是闭迹,又顶点无重复故存在圈V0V1?V'V0. 其他证明方式二:设在无向图G中,有n个顶点,m条边。由题意知,m>=(2n)/2=n,而一个含有n个顶点的树有n-1条边。因m>=n>n-1,故该图一定含有圈。
证明方式三:(201228015029012 皇甫杨)
逆否命题:在一个无向图中,若该图没有圈,则必存在顶点的度数小于2。 ∵ 该图没有圈 ∴ 该图为森林
∵ 森林是由树组成的,且树中必包含叶子结点 ∵ 叶子结点的度为1 ∴逆否命题得证。
(定义:迹是指边不重复的途径,而顶点不重复的途径称为路。起点和终点重合的途径称为闭途径,起点和终点重合的迹称为闭迹,顶点不重复的闭迹称为圈。) 2)在一个有向图D中,如果每个顶点的出度都大于等于1,则该图一定含有一个有向圈。
证明:同上,设有向图最长的无重复顶点的有向迹P?V0V1?Vk,每个顶点出度大于等于1,故存在V'为Vk的出度连接点,使得VkV'成为一条有向边,若V'?P,则得到比P更长的有向迹,与P矛盾,因此必有V'?P,从而该图一定含有有向圈。 2.设D是至少有三个顶点的连通有向图。如果D中包含有向的Euler环游(即是通过D中每条有向边恰好一次的闭迹),则D中每一顶点的出度和入度相等。反之,如果D中每一顶点的出度与入度都相等,则D一定包含有向的Euler环游。这两个结论是正确的吗?请说明理由。如果G是至少有三个顶点的无向图,则G包含Euler环游的条件是什么?
证明:1)若图D中包含有向Euler环游,下证明每个顶点的入度和出度相等。
如果该有向图含有Euler环游,那么该环游必经过每个顶点至少一次,每经过一次,必为“进”一次接着“出”一次,从而入度等于出度。从而,对于任意顶点,不管该环游经过该顶点多少次,必有入度等于出度。
2)若图D中每个顶点的入度和出度相等,则该图D包含Euler环游。证明如下。
对顶点个数进行归纳。
当顶点数|v(D)|=2时,因为每个点的入度和出度相等,易得构成有向Euler环游。
假设顶点数|v(D)|=k时结论成立,则
当顶点数|v(D)|=k + 1时,任取v∈v(D).设S={以v为终点的边},K={以v为始点的边},因为v的入度和出度相等,故S和K中边数相等。记G=D-v.对G做如下操作:
任取S和K中各一条边e1、e2,设在D中e1?v1v,e2?vv2,则对G和S做如下操作 G?G?v1v2, S?S?{e2},重复此步骤直到S为空。这个过程最终得到的G有k个顶点,且每个顶点的度与在G中完全一样。由归纳假设,G中存在有向Euler环游,设为C。在G中从任一点出发沿C的对应边前行,每当遇到上述添加边v1v2时,都用对应的两条边e1,e2代替,这样可以获得有向Euler环游。
3)G是至少有三个顶点的无向图,则G包含Euler环游等价于G中无奇度顶点。(即任意顶点的度为偶数)。
3.设G是具有n个顶点和m条边的无向图,如果G是连通的,而且满足m = n-1,证明G是树。
证明:思路一:
只需证明G中无圈。
若G中有圈,则删去圈上任一条边G仍连通。而每个连通图边数e>=n(顶点数) – 1,但删去一条边后G中只有n-2条边,此时不连通,从而矛盾,故G中无圈,所以G为树。
思路二:
当n?2时,m?2?1?1,两个顶点一条边且连通无环路,显然是树。 设当n?k?1(k?N,k?2)时,命题成立,则
当n?k时,因为G连通且无环路,所以至少存在一个顶点V1,他的度数为1,设
该顶点所关联的边为e1?(V1,V2).那么去掉顶点V1和e1,便得到了一个有k-1个顶点的连通无向无环路的子图G',且G'的边数m'?m?1,顶点数n'?n?1。由于m=n-1,所以m'?m?1?(n?1)?1?n'?1,由归纳假设知,G'是树。
由于G相当于在G'中为V2添加了一个子节点,所以G也是树。 由(1),(2)原命题得证。
4. 假设用一个n?n的数组来描述一个有向图的n?n邻接矩阵,完成下面工作:
1)编写一个函数以确定顶点的出度,函数的复杂性应为?(n);: 2)编写一个函数以确定图中边的数目,函数的复杂性应为?(n2); 3)编写一个函数删除边(i,j),并确定代码的复杂性。
解答:(1)邻接矩阵表示为an?n,待确定的顶点为第m个顶点vm
int CountVout(int *a,int n,int m){ int out = 0; for(int i=0;i (2)确定图中边的数目的函数如下: int EdgeNumber(int*a,int n){ int num =0; for(int i=0;i (3)删除边(i , j)的函数如下: void deleteEdge(int *a,int i ,int j){ if(a[i-1][j-1]==0) return; a[i-1][j-1] = 0; return; } 代码的时间复杂性为Θ(1) 5.实现图的D-搜索算法,要求用SPARKS语言写出算法的伪代码,或者用一种计算机高级语言写出程序。 解:D搜索算法的基本思想是,用栈代替BFS中的队列,先将起始顶点存入栈中,搜索时,取出栈顶的元素,遍历搜索其相邻接点,若其邻接点还未搜索,则存入栈中并标记,遍历所有邻接点后,取出此时栈顶的元素转入下一轮遍历搜索,直至栈变为空栈。 Proc DBFS (v) //从顶点v开始,数组visited标示顶点被访问的顺序; PushS(v , S); //首先访问v,将S初始化为只含有一个元素v的栈 count :=count +1; visited[v] := count; While S 非空 do u :=PullHead(S); count :=count +1; visited[w] := count; //区别队列先进先出,此先进后出 for 邻接于u的所有顶点w do if s[w] = 0 then PushS(w,S); //将w存入栈S s[w]:= 1; end{if} end{for} end{while} end{DBFS} 注:PushS(w,S)将w存入栈S; PullHead(S)为取出栈最上面的元素,并从栈中删除 Proc DBFT(G,m) //m为不连通分支数 count:=0 ;计数器,标示已经被访问的顶点个数 for i to n do s[i]:=0; //数组s用来标示各顶点是否曾被搜索,是则标记为1,否则标记为0; end{for} for i to m do //遍历不连通分支的情况 if s[i]=0 then DBFS (i); end{if} end{for} end{DBFT} 6.下面的无向图以邻接链表存储,而且在关于每个顶点的链表中与该顶点相邻的顶点是按照字母顺序排列的。试以此图为例描述讲义中算法DFNL的执行过程。 邻接链表 A->B->E|0 B->A->C|0 C->B->D->E|0 D->C|0 E->A->C->F->G|0 F->E->G|0 G->E->F|0 解:初始化 数组DFN:=0, num=1; A为树的根节点,对A计算DFNL(A,null), DFN(A):=num=1; L(A):=num=1; num:=1+1=2。 从邻接链表查到A的邻接点B, 因为DFN(B)=0,对B计算DFNL(B,A) DFN(B):= num=2; L(B):=num=2; num:=2+1=3。 查邻接链表得到B的邻接点A,因为DFN(A)=1?0, 但A=A,即是B的父节点,无操作。 接着查找邻接链表得到B的邻接点C, 因为DFN(C)=0,对C计算DFNL(C,B) 4 D 4 3 C 1 2 B 1 1 5 A 1 7 G 5 E 1 6 F 5 一个无向图 G
正在阅读:
2+二+图与遍历算法+习题参考答案10-15
副科级面试题及答案11-17
保护地球 4款在售主流新能源车型推荐04-29
维修电工技能测试模拟习题集08-16
新会计制度的认识与思考07-21
财经法规模拟(一)11-15
2016安全月试题04-24
《市场营销学原理》第04章10-15
少代会祝词01-02
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 遍历
- 习题
- 算法
- 答案
- 参考
- 大城一中预防艾滋病宣传日活动方案
- 祝文和祭文
- 第七届广东大学生校园文化艺术节活动方案
- 妇科医学论文:妇科急腹症误诊急性阑尾炎89例分析
- 《七彩阳光》教学反思
- 2016年初级经济师考试人力资源专业知识:通用的工作分析方法每日一练(4月12日)
- XO-CON4343无齿轮电梯整梯调试说明 - 图文
- 河北省涿鹿中学2017-2018学年高二下学期第一次月考物理试题 Word版含答案
- 嘉峪关雄关区黄草营项目规划 - 图文
- 工程机械用高强钢板
- 图书管理系统软件工程导论作业
- 人教版 语文 七年级上 读读写写(带拼音、解释)
- 2007-2008学年高二语文第一次月考卷
- 链路预算 移动通信的课程设计
- 新人教版高中历史必修2全册教案导学案含教案预习案探究案课后练习及答案24课时 - 图文
- “居然之家”签约活动方案 - 图文
- 2015-2016学年第一学期期末教学质量监测七年级数学试题附答案
- 中国地质大学土地调查策划书
- 江西省九江市都昌县第一中学新校区建设项目申请报告
- 山西产业结构特点研究(我的学期论文)