图论基础课件.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图论基础课件.ppt

图 论 我们经常看到,导游图、铁路和公路的路线图、程序流程图等都是用图形表示的。这些图形都以某种形式简捷地表现其对象的本质和关键,从而让人们通过观察,能很好地了解该图所表示的事物。 图 图是由一些点和这些点之间的连线组成的。 1.结点和边:我们把图中的点称为结点,把两结点之间的连线称作边. 2.相邻:若两个结点之间由一条边连接,则称这两个结点是相邻的. 3.无向图和有向图:如果不考虑边的方向,这样的图叫作无向图;反之,若边是有方向的,则这样的图称为有向图,有向图要用箭头标明边的方向.(树是一种有向图的特例.) 4.带权图:如果一个图在标明两个结点的从属关系的同时,又标明了两者的数量关系(如两地的距离),这样的图叫带权图. 5.结点的度数:与一个结点相关联的边的个数称为该结点的度数. 6.路:如果从一个结点出发,沿着某些连续地移动而到达另一个指定的结点,这种依次由结点和边组成的序列,就形成了一条路. 欧拉(Euler)回路 定义 对于连通的无向图G,若存在一简单回路,它通过G的所有边,则这回路称为G的(Euler)回路。 定理 若连通无向图G的所有顶点的度都是偶数,则存在一条图G的Euler回路。 推论 如果连通图G只有两个度为奇数的顶点,则存在一条以这两顶点为两端点,包含G的所有边的简单道路。这道路称之为Euler道路。 编程找出如图的一笔画路线 5 1 6 4 3 2 5 1 6 4 3 2 构造邻接矩阵 0 1 0 0 1 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 1 0 5 1 6 4 3 2 数组links 计算每个点的度数存dgr[I]中,总度数存sum中,奇点个数存odt中,若有奇点,则最后一个奇点位置存start中。 sum:=0;odt:=0;start:=1,dgr[i]:=0; For i:=1 to n do For j:=1 to n do dgr[i]:=dgr[i]+links[I,j] sum:=sum+dgr[i] If odd(dgr[i]) then odr:=odt+1;start:=i Until sum=0 r:=0 r:=r+1 links[nowd,r]0 and dgr[r]1 OR dgr[r]=1 and sum=2 links[nowd,r]:=0;links[r,nowd]:=0 dec(dgr[nowd]);dec(dgr[r]) sum:=sum-2;write(‘?’,r) nowd:=r program as; const n=6; links:array[1..n,1..n] of integer= ((0,1,0,0,1,1),(1,0,1,1,0,1),(0,1,0,1,0,0), (0,1,1,0,1,1),(1,0,0,1,0,1),(1,1,0,1,1,0)); var dgr:array[1..n] of integer; i,j,r,sum,odt,start,nowd:integer; procedure find; begin sum:=0;odt:=0;start:=0; for i:=1 to n do begin dgr[i]:=0; for j:=1 to n do dgr[i]:=dgr[i]+links[i,j]; sum:=sum+dgr[i]; if odd(dgr[i]) then begin odt:=odt+1;start:=i end; end; end; BEGIN find; if odt2 then begin writeln(no sulution.);exit end; nowd:=start; write(start); repeat r:=0; repeat r:=r+1; until ((links[nowd,r]0) and (dgr[r]1))or((dgr[r]=1) and (sum=2)); links[nowd,r]:=0;links[r,nowd]:=0;sum:=sum-2; dec(dgr[nowd]);dec(dgr[r]); nowd:=r; write(--,r); until sum=0; writeln; END. 无向图 有向图 返 回 带权图 返 回 求度数: 上图中结点1的度数为4,结点2的度数为3 。 返 回 下图对应的邻接矩阵为: 0 1 1 1 1 1 0 1

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档