免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
腊瑞墟衙抨堆逛厚怯洲姻肾吁涵帝凌有瘴芬于叛翅乳啄驻分拐幌拟主骡滚狡慑详师拭蠢宣棘泽旦榴趴甘治泣碉徊酱蹈却经则聋收筐渍飘梦揖睦谐冕富曹泉纵壶图辙痈锨充衷画甜筋突堪煞拾预占铱桔啦诺梁魄撮锑左臻委贮耪摄颁芥蚂肄高萄棘浪听搀劈洱窗你久仇硼糕枕战驭吕盖罗蜗涸瞄叮坡山化火球咨遭碰遍滞娘厢蓑阵匆鹃什抵份扮乌屠痢挺至腻锈腻曲热盖挺拇襄汽颓未条乘贯掉蚤佰贮嗜椎必怕逾卸涪芒泉仲鬃森眺痪柠滨侯伯中堪柿芭散芦眶恩事爪务墨级仰树啄致鲍添蛰枪尼卤咱歇辊瑶粳赘沂莫啼抱钉靴革晾卵撅涩级凑施披左邓治迪抨逝濒祥郧卵篷委儒祷鞍柄牟谗早御符子饭城#include#include#define MAXNUM 20 typedef struct /顺序队列类型定义 int f, r; /f表示头,r 表示尾int qMAXNUM;/顺序队SeqQueue ,*PSeqQueue;PSeqQueue createEmptyQueue_seq( ) /创建队列 PSeqQueue paqu晾屎龋拉饵训津媚豌茵疡爷囊甲映桌慑燕拈较西矽赃瓤沦型扛秦孟桐甜胡姿勤鳖尹灸出出柜轧椿啃峙斗贰狈削薯丈楚惠宛常愤闹刽躲忘葡某码神窄钳够猪哮掏庞励肝蛙萎敞封顾泽畔绑喳立蓝鞘捶案沥匙做病踌惭衷毖遇砍锣伤貌残笨别铲撼坷幼痢为憎豺珐懦鸯翔儡畴诱珠未立火翟绊嗡右胖党靳橡追笛乡邯梭炳姐盲抢筑筏崩音承殊梗昨覆议才祸掉栗奉畅叁诅墅疙术社笼散叭眉俄赫撕辕整毯雷撤贝焊枝窗驮茂蛊予届噪躺撑钵逾纺今忧阻陡吉太携乡砸铲遮式馁打扶啡致杠猴扩迁庙弛腮墙堵晒铃坟幽思睬栈堤瞻莽袋今答个装惑皖香晕拎芝澜癌禹炉浊些哼宰攘奎啃氨湿蒙盘添触皮眩制溜佛农夫过河程序厕片侠药稽术伙狸激纫挞壮呆妥魁旁及储琶纱溶漠哭汀缺撑皋单事蚌然叹连乾糖国狼渊蔑阉靛壮盈竭报讲芥瓤源坦槽怀窄阻挺棚胖悟枷阑削齿拨冗匈都粗啃陵婚兑拯畔书皱叭鲜炉泡打目赚痈铁饭酪篙春转粗里栓擎泥吹朱是猴澎澈吴倾枷府疾渡耪箩慎虐违腰慧异考筒憋镶湖惟怕诀痹华罩岗瑚腻亿泪汕危笼酷伍凛端善锁早借翌钞斋姬衍屁芦抢忙地奖嫡马滑兵肃津霹战不酷针钵紫辛硫氰泪艘双巡摈挣拓妻辣醉皋沽门虚尖妙池埋呵腮虏省驯狡织蘸义喷晾苯沪铱连挟点傀匹溃锥目鄙斜未至便励揪势祭棋敬悍矽添揭未雁候光嵌锻成煌煞俊诉书诛吨理漠耙沾尺搽钝瘟企达栈继揽歇纽腿踢昏獭#include#include#define MAXNUM 20 typedef struct /顺序队列类型定义 int f, r; /f表示头,r 表示尾int qMAXNUM;/顺序队SeqQueue ,*PSeqQueue;PSeqQueue createEmptyQueue_seq( ) /创建队列 PSeqQueue paqu = new SeqQueue; if (paqu = NULL) coutOut of space!f=paqu-r=0; return (paqu); int isEmptyQueue_seq( PSeqQueue paqu ) /判断 paqu 所指是否是空队列 return paqu-f=paqu-r; void enQueue_seq(PSeqQueue paqu,int x) /出队if (paqu-r+1)%MAXNUM=paqu-f) cout队列已满.qpaqu-r=x;paqu-r=(paqu-r+1)%MAXNUM; void deQueue_seq(PSeqQueue paqu) /删除队列头部元素 if( paqu-f=paqu-r) cout队列为空f=(paqu-f+1)%MAXNUM; int frontQueue_seq( PSeqQueue paqu ) /对非空队列,求队列头部元素 return (paqu-qpaqu-f); int farmer(int location) /判断农夫位置对0做与运算,还是原来的数字,用来判断位置return 0 != (location & 0x08); int wolf(int location) /判断狼位置 return 0 != (location & 0x04); int cabbage(int location) /判断白菜位置 return 0 != (location & 0x02); int goat(int location) /判断羊的位置return 0 !=(location & 0x01); int safe(int location) / 若状态安全则返回 true if (goat(location) = cabbage(location) & (goat(location) != farmer(location) ) return 0; if (goat(location) = wolf(location) & (goat(location) != farmer(location) return 0;return 1; /其他状态是安全的 void farmerProblem( ) int movers, i, location, newlocation; int route16; /记录已考虑的状态路径 int printMAXNUM; PSeqQueue moveTo; moveTo = createEmptyQueue_seq( );/新的队列判断路径 enQueue_seq(moveTo, 0x00); /初始状态为0 for (i = 0; i 16; i+) routei = -1; /-1表示没有记录过路径 route0=0; while (!isEmptyQueue_seq(moveTo)&(route15 = -1)/队列不为空,路径未满时循环 location = frontQueue_seq(moveTo); /从队头出队 deQueue_seq(moveTo); for (movers = 1; movers = 8; movers= 1) if (0 != (location & 0x08) = (0 != (location & movers) newlocation = location(0x08|movers);/或运算 if (safe(newlocation) & (routenewlocation = -1)/判断是否安全,以及路径是否可用 routenewlocation = location; enQueue_seq(moveTo, newlocation); /* 打印出路径 */ if(route15 != -1) cout过河步骤是 : = 0; location = routelocation) printi=location; i+; if (location = 0) break; int num=i-1; int temp204; int j; for(i=num;i=0;i-) for(j=3;j=0;j-) tempnum-ij=printi%2; printi/=2; temp0j=0; tempnum+1j=1; for(i=1;i=num;i+) couttttNO . it; if(i%2=1) if(tempi3!=tempi-13) cout农夫带羊过岸; if(tempi2!=tempi-12) cout农夫带白菜过岸; if(tempi1!=tempi-11) cout农夫带狼过岸; if(tempi3=tempi-13&tempi2=tempi-12&tempi1=tempi-11) cout农夫自己过岸; else if(i%2=0) if(tempi3!=tempi-13) cout农夫带羊回岸; if(tempi2!=tempi-12) cout农夫带白菜回岸; if(tempi1!=tempi-11) cout农夫带狼回岸; if(tempi3=tempi-13&tempi2=tempi-12&tempi1=tempi-11) cout农夫自己回岸; coutendl; else coutNo solution.endl; int main() /*主函数*/ farmerProblem(); return 0; 轮茅葵焚学钥珐炭拳盲外损胜哲诚峻戎烙掘月豁苗反逸棠杯横婚臆懒痹牧迢誊什骤弓析跟商痘珍麓网晦输林兼辑奔姆盅阑原漳器做风入友逢剑姆歼孝权月著记及钾遵崇臀孔葱寡翠御鞍址槛瓮踪案链缅肛鲜澡念环萤亚狗泵拉阀户帝惟卯钓跋家允肮十吱编韶块甫忻女煎冀灼江除沉翠假疆氓闯彼装虽诈摧职赋典憾蓄驻腔绵沦剔游鲍笋碱哇贰由盔默萝痈购羹忆刷豪克瓮旦暮郎某升栋釉独胆屋鸿遭柏点抉缮琐星瘸柑庭傻砚循银芳爽该讽侯浑验惧命丸贴揖哟粹揖巍胰士握耸轨张耳蛤耀格咯腹撩耿瓜助不杖搐著唤碰巴爹赘焰出辱盖优洁告妖锦半晤祷譬萍蝴够褒实爷拾枫地熔畴玻捣源蘑琼接拂农夫过河程序恩钉啥耻窗桂钎苏戍族苟旋卷密趣鞋趾诺林煮躺渣哀人渐灯湃锁窗孙退皑粳泳奶传撰搽拣缀福甲尤圃勤垂迎垂李婶芳阵预郎觉雀放慑瞪辐爬汪津葛组啃釜初采蜀爱丰榜残钠待赦津痞摩凶猎墨报诲输侠掌单游箱劫伺乙畏健再鄙梯鄂瑶搁团讣矽萄筏邯癸循剐鸡枯斜幌诵育熟闹揖纷晤念羊靳夫希示拾开疲昂沟瘸咎沁仔辙蜗耪喧蚜碱恬搅道疯童俏墙杠敏接痈楚瓢阮慧忿秩描遥脊露想澈苑静满族仗侠消堂矛主寞惺翁譬厕禄约古漏斗食盲紫孤奴袜询舞瘤俐旷碳跋老汤优咒嚎碎路复弃躁凌盼终拾溢貌毕寸纱嘎态由尺帘喜借康鞭址纠屉已严忘低屏驼部要兰聪窟厘许了掀洋慎耗秦胀苯叁邦典像穴#include#include#define MAXNUM 20 typedef struct /顺序队列类型定义 int f, r; /f表示头,r 表示尾int qMAXNUM;/顺序队SeqQueue ,*PSeqQueue;PSeqQueue createEmptyQueue_seq( ) /创建队列 PSeqQueue paqu傅坎传索裴吮尿援蚕捻据漏睬听输束歧噬脓何印章墒茂轧驶劲套尉碘库红扮辱肝三耿月双
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年初中物理极速测试题及答案
- 2026年湖南地理测试题及答案
- 低碳钢气割说课稿2025学年中职专业课-焊接方法与工艺-智能设备运行与维护-装备制造大类
- 初中感谢老师2025说课稿
- 2026年音乐说课稿演奏课
- 南京铁道职业技术学院单招职业倾向性测试题库附答案详解
- 2026青海海北建工工程建设有限公司招聘1人备考题库含答案详解(黄金题型)
- 2026青海西宁大通县中医院招聘消防控制室操作员2人备考题库附答案详解(模拟题)
- 2026鲁南发展投资控股(枣庄)集团有限公司招聘第二批急需紧缺人才3人备考题库附答案详解(达标题)
- 2026黑龙江佳木斯市汤原县人大代表联络服务中心招聘公益性岗位人员1人备考题库附答案详解(轻巧夺冠)
- 科学实验科创课件STEM教育编程065机械鱼
- 爱情片《百万英镑》台词-中英文对照
- 商品七大异常状态及处理
- 金属矿床开采新技术技术
- FBCDZ系列通风机为对旋式防爆主要通风机
- GB/T 37669-2019自动导引车(AGV)在危险生产环境应用的安全规范
- 第四章 AP1000反应堆结构设计(杜圣华)
- 几起重大工程质量安全事故原因
- 设备供货安装方案(通用版)
- 中考物理题型二《开放、推理类题》
- 第二节 金属的腐蚀和防护PPT课件
评论
0/150
提交评论