趣谈数据结构十.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
趣谈数据结构(十) 陈颖   例1 有如图1所示的七巧板,试编写一源程序如下,使用至多四种不同颜色对七巧板进行涂色(每块涂一种颜色),要求相邻区域的颜色互不相同,打印输出所有可能有   分析:本题实际上就是著名的地图四色问题。无论地图多么复杂,只需用四种颜色就可以将相邻的区域分开。                    图 1   为了解题方便,我们可以把七巧板上每一个区域看成一个顶点,若两个区域相邻,则相应的顶点间用一条边相连,这样,该问题就转化为图的问题了。   算法步骤:   按顺序分别对1号、2号、......、7号区域进行试探性涂色,用1、2、3、4号代表4种颜色。数据采用邻接矩阵。   ⒉若使用4种颜色进行涂色均不能满足要求,则回溯一步,更改前一区域的颜色。   ⒊转步骤1继续涂色,直到全部结束为止,输出。   源程序如下:   program four-colors(input,output,fdat);   const   max=10;   type   gradat=array[1..max,1..max] of byte;   var   data:gradat;   n:byte;   color:array[1..max] of byte;   total:integer;   procedure getdata;{输入数据} var   name:string[12];   fdat:text;   i,j:byte;   begin   write(use which file?);   readln(name);   assign(fdat,name);   reset(fdat);   read(fdat,n);   for i:=1 to n do   for j:=1 to n do   read(fdat,data[i,j]);   for i:=1 to n do   begin   for j:=1 to n do write(data[i,j]:5);   writeln;   end;   writeln;   end;   function colorsame(s:byte):boolean;{判断相邻点是否同色} var   i:byte;   begin   colorsame:=false;   for i:=1 to s-1 do   if (data[i,s]=1) and (color[i]=color[s]) then colorsame:=true;   end;   procedure print;{输出} var   i:byte;   begin   for i:=1 to n do write(color[i]:2);   inc(total);   writeln( con:,total);   end;   procedure try(s:byte);{递归有哪些信誉好的足球投注网站} var   i:byte;   begin   if s7 then print   else   begin   i:=0;   repeat   inc(i);   color[s]:=i;   if not(colorsame(s)) then try(s+1);   until i=4   end;   end;   begin {主源程序如下} getdata;   total:=0;   try(1);   writeln(Total=,total);   readln;   end.   fdat文件内容: 7   0 1 0 0 1 0 1   1 0 0 1 0 1 0   0 0 0 0 0 1 1   0 1 0 0 0 1 1   1 0 0 0 0 0 1   0 1 1 1 0 0 0   1 0 1 1 1 0 0   例2 对图2从V1点出发,沿着边系统地访问该图中其它所有的顶点一次且仅一 次。(用两种不同的解法)           图2                图 3 :从图上某点出发,沿边访问图中其它所有的顶点一次且仅一次,称为图的遍历。图的遍历有两种方式:深度优先有哪些信誉好的足球投注网站遍历与广度优先有哪些信誉好的足球投注网站遍历。 :   (一)深度优先有哪些信誉好的足球投注网站遍历算法   ⒈以给定的某个顶点V0为起始点,访问该顶点; V0相邻接且未被访问过的顶点V1,用V1作为新的起始点,重复上述过程; Vi时,就退回到新近被访问过的顶点Vi- 1,继续访问Vi-1尚未访问的邻接点,重复上述有哪些信誉好的足球投注网站过程;   这种有哪些信誉好的足球投注网站的次序体现了向纵深发展的趋势,所以称之为深度优先有哪些信誉好的足球投注网站。   图13.14中从V1出发的一种深度优先有哪些信誉好的足球投注网站访问顺序: --V2--V4--V8--V5--V6--V3-

文档评论(0)

189****6140 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档