实验三算法与分析设计..docxVIP

  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文档。上传文档
查看更多
武汉工程大学 计算机科学与工程学院 《算法设计与分析》实验报告 专业班级 计算机工程01班 实验地点 计算机大楼403 学生学号 1105080105 指导教师 张立 学生姓名 邓欢 实验时间 2014-04-14 实验项目 图的搜索算法 实验类别 设计性实验 实 验 目 的 及 要 求 目的与要求: 1) 熟练掌握图的基本搜索方法; 2) 掌握回溯法和分支限界策略的设计思想与方法; 3) 掌握回溯法和分支限界策略的编程实现与优化。 实验内容要点: 1) 用非递归回溯算法完成迷宫问题; 2) 用分支与限界策略求解分配问题。 成绩评定表 类 另y 评分标准 分值 得分 合计 上机表现 积极出勤、遵守纪律 主动完成实验设计任务 30分 实验报告 及时递交、填写规范 内容完整、体现收获 70分 说明: 评阅教师: 日期: 年 月 日 实验内容 例2 ?走迷宫问题 迷宫是许多小方格构成的矩形,如图所示,在每个小方格中有的是墙(图中的“ 1”有的是路 (图中的“ 0”。走迷宫就是从一个小方格沿上、下、左、右四个方向到邻近的方格,当然不 能穿墙。设迷宫的入口是在左上角( 1,1),出口是右下角(8,8)。根据给定的迷宫,找出一条 从入口到出口的路径。 1,1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 0 8,8 代码: #i ncludestdio.h int maze[8][8]={ {0,0,0,0,0,0,0,0}, {0,1,1,1,1,0,1,0}, {0,0,0,0,1,0,1,0}, {0,1,0,0,0,0,1,0}, {0,1,0,1,1,0,1,0}, {0,1,0,0,0,0,1,1}, {0,1,0,0,1,0,0,0}, {0,1,1,1,1,1,1,0}}; int fX[4]={1,-1,0,0},fy[4]={0,0,-1,1}; struct { int x,y,pre; }sq[100]; int qh,qe,i,j,k; check(i nt i,i nt j); void search。; void out(); void mai n() { search(); prin tf(\n); } void search() { qh = 0; qe = 1; maze[O][O] = -1; sq[O].pre = 0; sq[O].x = 0; sq[O].y = 0; while(qh!= qe) { qh=qh+1; for(k=0;k4;k++) { i = sq[qh].x+fx[k]; j = sq[qh].y+fy[k]; if(check(i,j)== 1) { qe=qe+1; sq[qe].x=i; sq[qe].y=j; sq[qe].pre=qh; maze[i][j]=-1; if(sq[qe].x==7 sq[qe].y==7) { out(); return; } } } } printf(non solutio n.\n); } check(i nt i,i nt j) { int flag = 1; if(i0 II i7 || j0 || j7) flag = 0; if(maze[i][j] ==1 || maze[i][j] == -1) flag = 0; return(flag); } void out() { prin tf((%d,%d),sq[qe].x,sq[qe].y); while(sq[qe].pre != 0) { qe=sq[qe].pre; prin tf( (%d,%d),sq[qe].x,sq[qe].y); } } 用例: 例4 有如图所示的七巧板,试设计算法,使用至多 4种不同的颜色对七巧板进行涂色(每块涂一种 颜色),要求相邻区域的颜色互不相同,打印输出所有可能的涂色方案。 代码: #in cludestdio.h int data[7][7]={{0,1,0,0,1,0,1},{1,0,0,1,0,1,0}, {0,0,0,1,0,0,1},{0,1,1,0,0,1,1}, {1,0,0,0,0,0,1},{0,1,0,1,0,0,0}, {1,0,1,1,1,0,0}}, n, color[7],total; void tre(i nt s); void out(); int colorsame(i nt s); void mai n() { int j; for(j=0;j7;j++) { color[j]=0; }

文档评论(0)

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

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

1亿VIP精品文档

相关文档