启发式搜索算法解决八数码问题(C语言)珍藏版:每日简讯
【资料图】
《启发式搜索算法解决八数码问题(C语言)》由会员分享,可在线阅读,更多相关《启发式搜索算法解决八数码问题(C语言)(9页珍藏版)》请在人人文库网上搜索。
1、1、程序源代码 include #include struct node int a33;用二维数组存放8数码 int hx;/函数h (x)的值,表示与目标状态的差距 struct node *parent;/指向父结点的指针 struct node *next;/指向链表中F个结点的指针 ; /hx 函数/ int hx(int s33) /函数说明:计算S与目标状态的差距值 int i, j; int hx=0; int sg3 3 = 1,2 3,8,0,4, 7, 6, 5; for(i=0;i3;i+) for(j=0;jnext=NULL; /初始化 for(i=0;i3;i+)。
2、/找到二维数组中0的位宜 for(j=0;jalij=0) flag=l; break; if(flag=l) break; for (m=0: ma 赋给 x for (n=0;namLn; 根据0的位宜的不同,对X进行相应的变换 情况1 if(i-l=0) t=xij ;xi j二xi-1 j ;Xi-lj=t; flag=0; for (m=0; m3: m+) /将 x 赋给 a for(n=0;nparent-amLn) flag 卄; if(flag!=9) q=(node *)malloc(sizeof(node); for (m=0;m3;m-r+) /将 x 赋给 a for。
3、(n=0;namn二xm n; q-parent=ex; q-hx二hx(q-a); q-next=NULL; p-next=q; p=p-next; 情况2 for (m=0;ma 重新赋给 x,即还原 x for (n=0;namn; if(i+l=2) t二xi j ;xi j二xi+l j ;xi+l j二t; flagO; for(m=0;m3;m+) for (n=0;nparentamLn) flag 卄; if (flag!=9) q=(node *)malloc(sizeof(node); for (m=0;m3;m+) /将 x 賦给 a for (n=0;nam n=xm。
4、 n; q-parent=ex; q-hx二hx(q-a); q-next=NULL; p-next=q; p=p-next; 情况3 for (m=0;ma 重新赋给 x,即还原 x for (n=0;namn; if(j-l=0) t=xi j ;xi j二xi j-l ;Xi j-l=t; flag=0; for(m=0;m3;m+) for (n=0;nparentamn) flag 卄; if(flag!=9) q二(node *)malloc(sizeof(node); for (m=0;m3;m+)/将 x 赋给 a for(n=0;namn=xmn; q-parent=ex; 。
5、q-hx二hx(q-a); q-next=NULL; p-next=q; p=p-next; 情况4 for (m=0;ma 重新赋给 x,即还原 x for (n=0;namn; if(j+l=2) t=xi j ;xi j二xi j+1 ;xij+l=t; flag=0; for(m=0;m3;m+) for (n=0;nparent-amn) flag 卄; if (flag!=9) q=(node *)malloc(sizeof(node); for (m=0;m3;m-r+) for (n=0;namn二xmn; q-parent=ex; q-hx二hx(q-a); q-next=N。
6、ULL; p-next=q; p=p-next; head=head-next; return head; /extend 函数 end /insert 函数/ node* insert(node *open, node * head) /函数说明:将head链表的结点依次插入到。pm链表相应的位置, /使open表中的结点按从小到大排序。函数返回open指针 node *q;/p、q均指向open表中的结点,p指向q所指的前一个结点 int i, j; int flag=0; 辻(open二二NULL)/初始状态,open表为空 /首先将head表第一个结点直接放入open表中 open=h。
7、ead; q=head; head二head-next; q-next=NULL; 再插入第二个结点 if (head-hxhx) /插入到首结点位置 open=head; head=head-next; open-next=q; else 或者第二个结点的位置 q-next=head; head=head-next; q=q-next; q-next=NULL; p=open; p二open; q=open-next; /end if wh 订e(head!=NULL) q=open; if (head-hxhx) /插入到表头 open=head; head=head-next; open。
8、-next=q; continue; else q=q-next;p=open; /否则,q指像第二个结点,p指向q前一个结点 while (q-next! =NULL) /将head的一个结点插入到链表中(非表尾的位置) printfC请输入初始状态的8数码(按每行从左往右依次输入,用0表示空格):); for(i=0;i3;i +) for(j=0;jhx二9; =hx; open二 p= if (open-hx=0) printf (该状态已为最终状态! n); return; q= close二 open二NULL; newlist=extend(q) ;/newlist指向新扩展出来。
9、的链表 open=insert (open, newlist);/将扩展岀来的结点插入到open表中 wh 订 e(l) q-next=open;/q始终指向close表尾结点。将open表的第一个元素加到close 表 open=open-next; q=q-next; q-next=NULL; if (q-hx=0) printf (n 搜索成功! n); break; newlist=extend(q) ;/对close表最后一个结点进行扩展,扩展得到的链表接到 open表尾 open=insert (open, newlist) ;/将扩展的结点按顺序插入到open表中 p=close; printfC择优搜索过程如下:n); while(p!=NULL) for(i=0;i3;i+) for(j=0;jai j); printf(n); printf(*n*); p=p-next; 2程序运行结果截图 4 7 截图1: r 初始态 2 1 7 为 3 4 5 运行结果 右图所示 1 0 请输入初始状态的 8 3 6 4 0 5 0 2 3 18 4 ? 6 5 Press any kwy to continue。
标签:
相关推荐:
最新新闻:
- 世界热门:如何打开pdg文件?手把手教你打开PDG文件
- golang-java-serializer序列化算法解析|当前热文
- 【python】Python中最常用的数据类型|播资讯
- 启发式搜索算法解决八数码问题(C语言)珍藏版:每日简讯
- 【爬取红岭创投】存储在mysql数据库中的无头模式 当前速讯
- bot短期密集访问形成的流量高峰有哪些?如何解决?|天天微资讯
- 茅台推出酒瓶装冰淇淋酷似飞天茅台:66元一瓶:热资讯
- 【剑灵力士】新版本力士职业天赋加点推荐 备战不删档-焦点
- 《寓言之地》将于4月13日在Steam开启抢先体验测试
- 【scrapy框架】scrapy框架糗事百科爬虫案例分享 世界快资讯
- 环球关注:外媒称网易暴雪分手 是因为网易“威胁”了科蒂克
- web服务器是什么?web服务器的概念与类型
- 躲过15次GC之后 进入老年代系统有哪些规则?|天天最资讯
- 环球快报:十二届省委第二轮巡视完成反馈
- 理想汽车雷达在无人陵园显示全是人影 官方回应_每日视点
- 央企专业化整合精准提速-世界热资讯
- 全球快看点丨《最后的生还者》PC版更新仍未解决卡顿等问题
- 环球观点:《GT赛车7》今日更新免费追加丰田豪华MPV
- MINISFORUM NAB6迷你主机上架:i7-12650H准系统低至2599元:天天热议
- 松下极简电吹风159元:天天快资讯
- 迪斯尼取缔元宇宙部门
- 资讯:Curved Lines展览征集稿件
- 固态PCIe转接卡5.9元
- 《霍格沃茨之遗》成为2023年2月北美最畅销电子游戏_世界快看点
- 天天热点评!PS+欧美服4月会免游戏公布 《麻布仔大冒险》等
- 新一代高贵“亮机卡”!RTX 4050被曝6月发布:弱得不像话 动态焦点
- 怎样去除甲醛最好_怎样去除甲醛最有效
- PC《最后生还者:第一部》4080 4K帧率测试 DLSS效果出色
- 接手机宾得望远镜889元_天天报资讯
- Steam明年不再支持Win7、8!
- 透视上市券商年报:两融业务不乏亮点 仍需多维度补短板:每日热文
- 广宇发展:2022年营收34亿元,净利6.33亿元 | 年报快讯
- 环球今日报丨TGA红灵入侵少年再出现:送给甲亢哥梅西签名球衣
- 斯坦福大学医院外科医生培训 白男占比0%引争议
- 玲娜贝儿设计师遭裁员:已经累计为迪士尼公司工作22年-焦点快报
- 《地平线:西之绝境》DLC“燃烧海岸”新截图公开-今日最新
- 世界视讯!超过90%会员表示:如果没有XGP就不会尝试在玩的游戏
- 每日热点:有学历如何去澳大利亚工作_办理澳大利亚工作签证需要什么条件
- 《塞尔达传说:王国之泪》武器融合系统《蟹蟹寻宝奇遇》早有了:别说我抄袭|世界即时
- 世界热资讯!《TLOUP1》PC版首日峰值36496人 位列PS游戏第四
- 小米13 Ultra定档:4月中旬发布 世界热议
- 股票行情快报:中色股份(000758)3月29日主力资金净卖出2901.96万元
- 引领个人PC新风尚 “定番”款笔记本电脑VAIO F14·F16在日本上市 全球快报
- 【新视野】2499 元,影驰 PCIe 5.0 高速固态硬盘发布,速度可达 10G/s
- 42岁法国女星伊娃·格林新写真 贴身长裙大秀好身材 速讯
- 环球短讯!360版ChatGPT要来了!周鸿祎:大家给起个名字
- 白客坦言:"王大锤"后 导演看中了我的朴实和普通_当前速看
- 传《巫师:天狼星》是日本背景 目标是在东方推广巫师
- 《龙之陨落》上架steam年内发售 爽快3D动作RPG 焦点短讯
- 前《寂静岭》编剧:《寂静岭2:重制版》将让玩家失望
- 全球观点:123搜狗浏览器_123sogou
- 男子陵园祭祖车雷达显示全是人 网友:啥车?我想试试
- 天天即时:IGN《法外枭雄》13分钟实机:多位好莱坞影星登场!
- 金钱不是万能的辩论赛_金钱不是万能的辩论:世界球精选
- 苏宁易购预售红米Note12,线上预定送碎屏险
- Note 12 Turbo屏幕与天马深度共研,风车像素排列
- 装机神条!16GB DDR4 3200MHz内存低至185元:每日时讯
- 天天简讯:集成灶十大品牌帅丰电器持续深入终端,助力全国帅丰集成灶门店
- 全球热议:跌跌不休,内存还将继续降价,至少再打 9 折
- 2023育碧前瞻会再度归来!6.13洛杉矶现场直播
- 《王国之泪》限定NS OLED开箱:金绿符文神秘感拉满
- 活到老打到老 《师父》steam首发优惠立减10%
- 云南思茅:夯实自治“小支点” 撬动社区“大治理”:世界观热点
- 一加11木星岩版发布:纹理独一无二 聚看点
- 不会录屏?Siri可以帮你实现了:热推荐
- 世界微资讯!海信电视亮相上海张园,与《家居廊》共探家居艺术新边界
- E Ink元太科技与Sharp合作推出零功耗*电子纸数字海报|世界热点
- 年轻人为什么不喜欢买iPhone了?_今头条
- [路演]青矩技术:工程管理科技服务系提升建筑业信息化和数字化水平主要手段 拥有较大发展空间
- 热头条丨顽皮狗承诺:未来将继续支持PC玩家
- 热资讯!曝《巫师天狼星》是日本背景 为扩大IP在东方影响力
- 当前最新:DDR5价格崩了!16GB内存低至339元
- 焦点短讯!推动可信数据自由流动 浪潮数据云业务战略正式发布
- 云霄之上,是卡萨帝电热水器的创新之“胆”!-当前观点
- 环球快播:真福利还是促销手段?小米给27万小米空气净化器初代用户每人送899元优惠券