- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
农夫过河问题源代码
#includeiostream.h
#define M 20
typedef struct node
{
int front;
int rear;
int data[M];
}SeqQueue;
SeqQueue *creat(SeqQueue *Q)//创建队列
{
Q=new SeqQueue;
if(Q==NULL) cout无空间;
else {
Q-front=0;
Q-rear=0;
}
return Q;
}
int empty(SeqQueue *Q)//判空
{
return (Q-front==Q-rear);
}
void insequeue(SeqQueue *Q,int x)
{
if(((Q-rear+1)%M)==Q-rear)
cout队列已满!endl;
else {
Q-data[Q-rear]=x;
Q-rear=(Q-rear+1)%M;
}
}
void desequeue(SeqQueue *Q)
{
if(Q-rear==Q-front)
{
cout队已空;
}
else Q-front=(Q-front+1)%M;
}
int frontsequeue(SeqQueue *Q)
{
if(Q-rear==Q-front)
{
cout队已空;
return 0;
}
else return (Q-data[Q-front]);
}
//0x01:0000 0001 羊
//0x02:0000 0010 白菜
//0x04:0000 0100 狼
//0x08:0000 1000 农夫
int farmer(int location)
{
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)
{
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 printfarmer(int location)
{
if(location8)
cout农夫:北岸\t;
else cout农夫:南岸\t;
}
void printwolf(int location)
{
if((location12location7)||location4)
{
cout狼:北岸\t\t;
}
else cout狼:南岸\t\t;
}
void printfcabbage(int location)
{
if(location%4==0||location%4==1)
{
cout白菜:北岸\t;
}
else cout白菜:南岸\t;
}
void printfgoat(int location)
{
if(location%2==0)
{
cout羊:北岸\t;
}
else cout羊:南岸\t;
}
void main()
{
int i,m,newlocation,location,route[M];//m为正在移动的物品route[M]用于记录已考虑的状态路径
SeqQueue *Q;
Q=creat(Q);
insequeue(Q,0x00);
for(i=0;i16;i++)
route[i]=-1;
route[0]=0;
cout---------------------------农夫过河问题-----------------------------endlendl;
while(!empty(Q)(route[15]==-1))//Q非空或已全部被访问过
{
location=frontsequeue(Q);//取对头状态为当前状态
desequeue(Q);//队头元素出队
for(m=1;m=8;m=1)//考虑各种物品移动
{
if((0!
您可能关注的文档
- 攻克2663words!.docx
- 外研衔接版七年级英语上Module2检测题及答案.doc
- 第二单元古代希腊罗马.doc
- 小学英语语法完全测试题.doc
- 最优运输问题数学模型.doc
- 九上英语期中考试卷.doc
- restaurent 餐馆中英文大全.docx
- Figures of Speech英文修辞手法.doc
- 足球专业术语 英文.doc
- 浅谈中西方教育的不同(汉英结合).doc
- 大学生职业规划大赛《新闻学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《应用统计学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《音乐学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《中医学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《信息管理与信息系统专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《汽车服务工程专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《水产养殖学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《市场营销专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《音乐表演专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《音乐学专业》生涯发展展示PPT.pptx
最近下载
- 目的论视角下奢侈品香水广告的汉译策略研究——以迪奥为例.docx
- 2022年新版大象版六年级科学上册全册PPT课件.pptx
- 【新结构】湖北省七市州2024届高三下学期3月联合统一调研测试数学试题+答案解析.pdf VIP
- 物流和供应链(英文).ppt
- 北师大版数学八年级下册第四章 因式分解 大单元整体教学设计学历案教案附作业设计(基于新课标教学评一致性).docx
- 2023欧洲车身会议资料010_SUV full aluminium case_Hyundai and Alumobility.pdf
- 心衰的新药物治疗.pptx VIP
- 老旧小区外立面改造安全生产和文明施工措施.doc
- 口腔科护理质量查检表.docx VIP
- 《管理学习题》无答案.docx VIP
文档评论(0)