数据结构实验报告
实验名称:实验三 农夫过河
学号:***
姓名:gnosed
实验日期:2017.10.30
一、实验目的
1、进一步掌握队列的使用
2、会使用队列进行农夫过河解的搜索
二、实验具体内容
1、实验题目1:
(1)题目
经典的农夫过河问题
一个农夫带着一只狼,一只羊和一颗白菜过河,从西岸到东岸。船太小,他每次过河只能携带一样东西,船只有农夫能撑。问题是狼会吃羊,羊会吃白菜,所以不能单独让狼和羊或者羊和白菜单独在河的一边,但狼不吃白菜。请问农夫采取什么方案,才能将所有东西安全运过河?
要求:使用广度优先搜索农夫过河解,并输出结果。
提示:可以使用STL中的队列进行代码编写。
(2)分析
首先对每件东西的位置进行描述,用4位二进制数顺序分别表示农夫、狼、羊和白菜的位置,0表示在东西河的西岸,1表示在东岸。例如1001表示农夫和白菜在东岸,狼和羊在西岸。
数据结构:
1. int location:用整型location表示位置状态,从初始化状态0(二进制为0000)到终结状态15(二进制为1111