



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 实 验 报 告 3一、实验目的:掌握汉诺塔的深度有界搜索求解算法的基本思想。二、实验要求:用C语言实现汉诺塔的深度有界搜索求解三、实验语言环境:C 语言四、设计思路:含有深度界限的深度优先搜索算法如下: 把起始节点S放到未扩展节点OPEN表中。如果此节点为一目标节点,则得到一个 解。如果 OPEN 为一空表,则失败退出。把第一个节点(节点n)从OPEN表移到CLOSED表。如果节点n的深度等于最大深度,则转向(2)。扩展节点n,产生其全部后裔,并把它们放入OPEN表的前头。如果没有后裔,则 转向(2)。如果后继节点中有任一个为目标节点,则求得一个解,成功退出;否则,转向(2)。五、实验代码#
2、include #include typedef struct node long map;long floor; /记录第几层 node;node queue362880 / 2 + 1; / 奇偶各一半long tail, head;long hash362880 / 32 + 1;int main()void Solve();while (scanf(%ld, &queue0.map) & queue0.map) memset(hash, 0, sizeof(hash); queue0.floor = 1; /(根节点)第一层 tail = head = 0;Solve(); print
3、f(max_floor = %dn, queuehead.floor); printf(total node = %dn, head + 1);printf(total node in theory %dn, 362880 / 2);return 0;void Solve()node e;long i, map9, space;long Compress(long *);int Visited(long *);void swap(long &, long &);while (tail =0; i-) mapi = e.map % 10;if (mapi = 0) space = i; e.ma
4、p /= 10;Visited(map); / 根节点要置为访问过if (space = 3) /can upswap(mapspace - 3, mapspace);if (!Visited(map) queue+head.map = Compress(map); queuehead.floor = queuetail - 1.floor + 1;swap(mapspace - 3, mapspace);if (space = 5) /can downswap(mapspace + 3, mapspace);if (!Visited(map) queue+head.map = Compres
5、s(map); queuehead.floor = queuetail - 1.floor + 1;swap(mapspace + 3, mapspace); if (space % 3 != 0) /can leftswap(mapspace - 1, mapspace);if (!Visited(map) queue+head.map = Compress(map); queuehead.floor = queuetail - 1.floor + 1;swap(mapspace - 1, mapspace);if (space % 3 != 2) /can rightswap(mapspa
6、ce + 1, mapspace);if (!Visited(map) queue+head.map = Compress(map); queuehead.floor = queuetail - 1.floor + 1;swap(mapspace + 1, mapspace);void swap(long &x, long &y) x A= y; y a= x;x A= y;long Compress(long *map) long t = 0, i;for (i=0; i9; i+) t = t * 10 + mapi;return t;int Visited(long *map)long Hash(long *);long n = Hash(map);long a = n / 32;long b = 1 (n % 32);if (hasha & b) return 1;else hasha |= b; return 0;long Hash(long *map)static long t, i, j;static long formula9 = 1, 1, 2, 6, 24, 120, 720, 5040, 40320 ;static long temp9;for (i=0; i9
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 员工离职后的关怀计划
- 小班生活习惯培养的工作重点计划
- 2025年金属探测器项目发展计划
- 2025年股权融资顾问之股权私募项目总协调人暨财务顾问协议
- 折线统计图(教案)青岛版五年级上册数学
- 培训费退款协议(2025年版)
- 保安班长工作总结报告
- 做销售的工作简历模板
- 酒店评价员工的评语
- 物业供应链公司合作协议
- 2025年双向转诊性合作协议书
- 股骨颈置换术后护理
- 2025年云南中烟工业有限责任公司招聘(430人)笔试参考题库附带答案详解
- 2022电力工程电缆隧道通风及照明安装施工作业指导书
- 2025年《中央一号文件》参考试题库资料100题及答案(含单选、多选、判断题)
- 2025年安徽林业职业技术学院单招职业技能测试题库及答案(考点梳理)
- 18 文言文二则 铁杵成针 教学设计-2023-2024学年四年级语文下册统编版
- 2024年中小学思政课“名师工作室”和班主任“名师工作室”建设实施方案
- 2024-2025中考英语八大时态混合真题
- 2024年北京电子科技职业学院高职单招语文历年参考题库含答案解析
- DB32T-桥梁轻量化监测系统建设规范
评论
0/150
提交评论