欢迎来到天天文库
浏览记录
ID:77959891
大小:15.68 KB
页数:10页
时间:2022-01-29
《农夫过河报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、这最起码是一个报告,虽然我尽力的看,终究还是看不懂。喜啦啦了喜啦啦了喜啦啦了组员:李琦、郑鸿飞、王琅辉、张育博摘要农夫过河问题是应用广度优先搜索和深度优先搜索的典型问题,但这里我们应用了简单的数组,通过层层筛选的手段也解决了同样的问题,其中用到了部分广度优先搜索的思想。4、刖百农夫过河问题描述:一个农夫带着一只狼、一只羊和一棵白菜,身处河的南岸。他要把这些东西全部运到北岸。他面前只有一条小船,船只能容下他和一件物品,另外只有农夫才能撑船。如果农夫在场,则狼不能吃羊,羊不能吃白菜,否则狼会吃羊,羊会吃白菜,所以农夫不能留下羊和白菜自己离开,也不能留下狼和羊自己离开,而狼不吃白菜。请求出农夫将
2、所有的东西运过河的方案。正文1.问题抽象和数据组织农夫过河问题应该应用图的广度优先遍历或者深度优先遍历,但这里我们仅使用简单的线性表0和1代表农夫、狼、数组,通过多重的条件限制,达成目的。这里我们同样用羊、白菜在左岸还是在右岸,并规定0在左,1在右,我们的目的便是从0000通过一系列变换到1111。2.农夫过河算法源代码#include<>#defineMAX16typedefstructFWSVintfarmer;intwolf;intsheep;intvegetable;}ltem;armer=f;safe[k].wolf=w;safe[k].sheep=s;safe[k].veget
3、able=v;k++;Itemjudge(ltemFwsv)(Itemnext;Itemcompare[4];next=compare;intxl=0;intsum=0;if==0)for(intx=0;x4、egetable!=4))compare[x1]=safe[x];x1++;for(intx2=0;x2<4;x2++)(olf!=!=&&compare[x2].sheep!=!=&&compare[x2].vegetable!=!=&&compare[x2].vegetable!=)compare[x2].farmer=0;compare[x2].wolf=0;compare[x2].sheep=0;compare[x2].vegetable=0;)sum+=2;armer+compare[x2].wolf+compare[x2].sheepcompare[x2].vegetable!5、=sum)(compare[x2].farmer=0;compare[x2].wolf=0;compare[x2].sheep=0;compare[x2].vegetable=0;printf(Mn);for(intx3=0;x3<4;x3++)(if(compare[x3].farmer+compare[x3].wolf+compare[x3].sheep+compare[x3].vegetable!=0)(printf("上数与:%d%d%d%相连",compare[x3].farmer,compare[x3].wolf5compare[x3].sheep,compare[x36、].vegetabl);}if==1)(for(inty=0;y7、(intx2=0;x2<4;x2++)(sum=+++;if(!=&&compare[x2].wolf!=!=&&compare[x2].sheep!=!=&&compare[x2].vegetable!=!=&&compare[x2].vegetable!=)(compare[x2].farmer=0;compare[x2].wolf=0;compare[x2].sheep=0;compare[x2].vegetabl
4、egetable!=4))compare[x1]=safe[x];x1++;for(intx2=0;x2<4;x2++)(olf!=!=&&compare[x2].sheep!=!=&&compare[x2].vegetable!=!=&&compare[x2].vegetable!=)compare[x2].farmer=0;compare[x2].wolf=0;compare[x2].sheep=0;compare[x2].vegetable=0;)sum+=2;armer+compare[x2].wolf+compare[x2].sheepcompare[x2].vegetable!
5、=sum)(compare[x2].farmer=0;compare[x2].wolf=0;compare[x2].sheep=0;compare[x2].vegetable=0;printf(Mn);for(intx3=0;x3<4;x3++)(if(compare[x3].farmer+compare[x3].wolf+compare[x3].sheep+compare[x3].vegetable!=0)(printf("上数与:%d%d%d%相连",compare[x3].farmer,compare[x3].wolf5compare[x3].sheep,compare[x3
6、].vegetabl);}if==1)(for(inty=0;y7、(intx2=0;x2<4;x2++)(sum=+++;if(!=&&compare[x2].wolf!=!=&&compare[x2].sheep!=!=&&compare[x2].vegetable!=!=&&compare[x2].vegetable!=)(compare[x2].farmer=0;compare[x2].wolf=0;compare[x2].sheep=0;compare[x2].vegetabl
7、(intx2=0;x2<4;x2++)(sum=+++;if(!=&&compare[x2].wolf!=!=&&compare[x2].sheep!=!=&&compare[x2].vegetable!=!=&&compare[x2].vegetable!=)(compare[x2].farmer=0;compare[x2].wolf=0;compare[x2].sheep=0;compare[x2].vegetabl
此文档下载收益归作者所有