- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2+二+图和遍历算法+习题参考答案.doc
第二章部分习题参考答案
1.证明下列结论:
1)在一个无向图中,如果每个顶点的度大于等于2,则该图一定含有圈;
证明:设无向图最长的无重复顶点的迹(若含有重复顶点,则取重复顶点及其之间的点,即可构成一个圈)。由于每个顶点度大于等于2,故存在与相异的点与相邻,若则得到比更长的迹,与P的取法矛盾。因此,,从而是闭迹,又顶点无重复故存在圈
其他证明方式二:设在无向图G中,有n个顶点,m条边。由题意知,m=(2n)/2=n,而一个含有n个顶点的树有n-1条边。因m=nn-1,故该图一定含有圈。
证明方式三:(201228015029012 皇甫杨)
逆否命题:在一个无向图中,若该图没有圈,则必存在顶点的度数小于2。
∵ 该图没有圈 ∴ 该图为森林
∵ 森林是由树组成的,且树中必包含叶子结点
∵ 叶子结点的度为1 ∴逆否命题得证。
(定义:迹是指边不重复的途径,而顶点不重复的途径称为路。起点和终点重合的途径称为闭途径,起点和终点重合的迹称为闭迹,顶点不重复的闭迹称为圈。)
2)在一个有向图D中,如果每个顶点的出度都大于等于1,则该图一定含有一个有向圈。
证明:同上,设有向图最长的无重复顶点的有向迹每个顶点出度大于等于1,故存在为的出度连接点,使得成为一条有向边,若则得到比更长的有向迹,与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中各一条边,设在D中,,则对G和S做如下操作 , ,重复此步骤直到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为树。
思路二:
当时,,两个顶点一条边且连通无环路,显然是树。
设当时,命题成立,则
当时,因为G连通且无环路,所以至少存在一个顶点,他的度数为1,设该顶点所关联的边为那么去掉顶点和,便得到了一个有k-1个顶点的连通无向无环路的子图,且的边数,顶点数。由于m=n-1,所以,由归纳假设知,是树。
由于相当于在中为添加了一个子节点,所以G也是树。
由(1),(2)原命题得证。
4. 假设用一个的数组来描述一个有向图的邻接矩阵,完成下面工作:
1)编写一个函数以确定顶点的出度,函数的复杂性应为:
2)编写一个函数以确定图中边的数目,函数的复杂性应为
3)编写一个函数删除边,并确定代码的复杂性。
解答:(1)邻接矩阵表示为,待确定的顶点为第m个顶点
int CountVout(int *a,int n,int m){
int out = 0;
for(int i=0;in;i++)
if(a[m-1][i]==1) out++;
return out;
}
(2)确定图中边的数目的函数如下:
int EdgeNumber(int*a,int n){
int num =0;
for(int i=0;in;i++)
for(int j=0;jn;j++)
if(a[i][j]==1) num++;
retu
文档评论(0)