趣谈数据结构(十二)福州一中陈颖.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文档。上传文档
查看更多
趣谈数据结构(十二)福州一中陈颖

趣谈数据结构(十二) 陈颖   本讲对广度优先有哪些信誉好的足球投注网站算法的应用作进一步的讨论。   用广度优先有哪些信誉好的足球投注网站解题时,结点的扩展(OPEN)表是一个队即先进先出的顺序表,每次取队头的结点进行扩展,新扩展的结点加入队尾,直到有哪些信誉好的足球投注网站到目标结点或队空为止。   具体算法:   ⒈把起始结点放入OPEN表中(先进先出的顺序表),如果该起始结点为一目标结点,则求得一个解答。 OPEN是个空表,则有哪些信誉好的足球投注网站失败退出,否则继续。 OPEN表中最前面(队头)的结点,并把它放入CLOSED的扩展结点表中,并冠以顺序编号n。   ⒌把n的所有后继结点放到OPEN表的末端(队尾),并提供从这些后继结点回到n的指针。   例如 图1给出广度优先有哪些信誉好的足球投注网站应用于八数码难题时所生成的有哪些信誉好的足球投注网站树。有哪些信誉好的足球投注网站树上的所有结点都标记它们所对应的状态,每个结点旁边的数字表示结点扩展的顺序。粗线条路径表明求得的一个解。从图中可以看出,扩展26个结点和生成46个结点之后,才求得这个解。此外,直接观察此图表明,不存在有更短走步序列的解。 1 广度优先有哪些信誉好的足球投注网站图                          Program BFS; data;数据库赋初值; H:=0;队列尾指针L:=1; repeat     取下一个H所指的结点; for i:=1 to max do {i为产生新结点规则编号} begin      L增1,把新结点存入数据库队尾;记录父结点的位置;  if then       删去该结点(L减1) else        if 新结点为目标结点 then      end; end; until H=L {队列为空} 1 在一个瓶中装有80毫升化学溶剂,实验中需要精确地平分成两份,没有量具,只有两个杯子,其中一个杯子的容量是50毫升,另一个是30毫升,试设计一个程序将化学溶剂对分成两个40毫升,并以最少步骤给出答案。 :三个杯子水的初始状态为:80、0、0,生成新结点状态的方法为:将一个不空的杯子水倒入一个不满的杯中,且结点状态不重复,直到生成目标结点为止。 :   ⒈数据库: 用数组d构成存放生成结点(杯子水状态)的队;数组p作为指向父结点的指针;t和s作为队头与队尾指针。 :   (1)将结点中不空的杯子水倒入一个不满的杯子中,生成新的结点并记下父结点位置; (2)判断新结点是否已生成过,   (3)生成的结点若为目标结点,输出。 : 广度优先有哪些信誉好的足球投注网站。 : program ex3; type  status= array [1..3] of integer; const  v: array [1..3] of integer =(80,50,30); var d: array [1..200] of status;  p: array [1..200] of integer;  t,s,i,j: integer; procedure draw(f: integer);{输出} var m: array [1..20] of integer;  i,j,k: integer; begin  j:=0;  while f1 do begin   inc(j);   m[j]:=f;   f:=p[f];  end;  writeln;  writeln(Start: ,d[1,1]:3,d[1,2]:3,d[1,3]:3);  for i:=j downto 1 do begin   write(Step No.,j+1-i,: );   for k:=1 to 3 do write(d[m[i],k]:3);   writeln;  end;  writeln(End.);  halt; end; function exampass(w: integer): boolean;{新结点是否以前生成过} var i: integer; begin  for i:=1 to w-1 do   if (d[i,1]=d[w,1]) and (d[i,2]=d[w,2]) and (d[i,3]=d[w,3])   then begin    exampass:=false;    exit;   end;  exampass:=true; end; function isobject(w: integer): boolean;{是否为目标结点} begin if (d[w,1]=40) and (d[w,2]=40) then isobject:=true  else isobject:=false; end; begin {生成新结点,将一个不空的杯子水倒入一个不满的杯子中} d[1,1]:=80; d[1,2]:=0; d[1,3]:=0;  p[1]

文档评论(0)

kabudou + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档