大数据结构实验五修道士野人问题.docx
- 文档编号:8303231
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:13
- 大小:190KB
大数据结构实验五修道士野人问题.docx
《大数据结构实验五修道士野人问题.docx》由会员分享,可在线阅读,更多相关《大数据结构实验五修道士野人问题.docx(13页珍藏版)》请在冰豆网上搜索。
大数据结构实验五修道士野人问题
实验报告五
实验课名称:
数据结构与程序设计实验
实验名称:
修道士野人问题
班级:
学号:
姓名:
时间:
一、问题描述
河的左岸有N个野人和N个修道士以及一条小船,修道士们想用这条小船把所有的人都运到河的右岸,但又受到以下限制:
●所有人都会划船,但船一次只能载C人
●在任意岸上,野人数不能超过修道士数,否则修道士将会被野人吃掉。
现假定野人服从任意过河安排,需要规划出一种确保修道士安全的过河方案。
二、数据结构设计
typedefstruct
{
intnum1;//修道士
intnum2;//野蛮人
intan;//表示两岸
}DataType;//三元组
typedefstructNode
{
intdest;//邻接表的弧头结点序号
structNode*next;
}Edge;//邻接表单链表的结点结构体
typedefstruct
{
DataTypedata;//结点数据元素
intsorce;//邻接表的弧尾结点序号
Edge*adj;//邻接边的头指针
intpre;//指向此点的点的序号
}AdjLHeight;//数组的数据元素类型结构体
typedefstruct
{
AdjLHeighta[10000];//邻接表数组
intnumOfVerts;//结点个数
intnumOfEdges;//边个数
}AdjLGraph;//邻接表结构体
三、算法设计
1)图的初始化
2)在G图中插入结点
3)在G图中插入边
4)图的撤销
5)检查当前情况下,修道士是否安全
用if语句判断,左岸右岸的修道士人数都必须不小于野人数目才可
6)生成在船上修道士仍安全的情况
7)打印安全渡河的过程
8)广度搜索建立表
四、界面设计
五、运行测试与分析
输入
输出
实际
12
(111)船上人数[修道士,野人][11]右边岸上[000]
(000)
√
35
(331)船上人数[修道士,野人][32]右边岸上[010]
(010)船上人数[修道士,野人][10]左边岸上[111]
(111)船上人数[修道士,野人][11]右边岸上[000]
(000)
(331)船上人数[修道士,野人][32]右边岸上[010]
(010)船上人数[修道士,野人][01]左边岸上[021]
(021)船上人数[修道士,野人][02]右边岸上[000]
(000)
(331)船上人数[修道士,野人][32]右边岸上[010]
(010)船上人数[修道士,野人][02]左边岸上[031]
(031)船上人数[修道士,野人][03]右边岸上[000]
(000)
(331)船上人数[修道士,野人][32]右边岸上[010]
(010)船上人数[修道士,野人][30]左边岸上[311]
(311)船上人数[修道士,野人][31]右边岸上[000]
(000)
(331)船上人数[修道士,野人][32]右边岸上[010]
(010)船上人数[修道士,野人][21]左边岸上[221]
(221)船上人数[修道士,野人][22]右边岸上[000]
(000)
(331)船上人数[修道士,野人][32]右边岸上[010]
(010)船上人数[修道士,野人][31]左边岸上[321]
(321)船上人数[修道士,野人][32]右边岸上[000]
(000)
(331)船上人数[修道士,野人][22]右边岸上[110]
(110)船上人数[修道士,野人][20]左边岸上[311]
(311)船上人数[修道士,野人][31]右边岸上[000]
(000)
(331)船上人数[修道士,野人][22]右边岸上[110]
(110)船上人数[修道士,野人][11]左边岸上[221]
(221)船上人数[修道士,野人][22]右边岸上[000]
(000)
(331)船上人数[修道士,野人][22]右边岸上[110]
(110)船上人数[修道士,野人][21]左边岸上[321]
(321)船上人数[修道士,野人][32]右边岸上[000]
(000)
(331)船上人数[修道士,野人][31]右边岸上[020]
(020)船上人数[修道士,野人][01]左边岸上[031]
(031)船上人数[修道士,野人][03]右边岸上[000]
(000)
(331)船上人数[修道士,野人][31]右边岸上[020]
(020)船上人数[修道士,野人][20]左边岸上[221]
(221)船上人数[修道士,野人][22]右边岸上[000]
(000)
(331)船上人数[修道士,野人][31]右边岸上[020]
(020)船上人数[修道士,野人][30]左边岸上[321]
(321)船上人数[修道士,野人][32]右边岸上[000]
(000)
(331)船上人数[修道士,野人][03]右边岸上[300]
(300)船上人数[修道士,野人][01]左边岸上[311]
(311)船上人数[修道士,野人][31]右边岸上[000]
(000)
(331)船上人数[修道士,野人][03]右边岸上[300]
(300)船上人数[修道士,野人][02]左边岸上[321]
(321)船上人数[修道士,野人][32]右边岸上[000]
(000)
(331)船上人数[修道士,野人][02]右边岸上[310]
(310)船上人数[修道士,野人][01]左边岸上[321]
(321)船上人数[修道士,野人][32]右边岸上[000]
(000)
(331)船上人数[修道士,野人][11]右边岸上[220]
(220)船上人数[修道士,野人][10]左边岸上[321]
(321)船上人数[修道士,野人][32]右边岸上[000]
(000)
√
23
(221)船上人数[修道士,野人][21]右边岸上[010]
(010)船上人数[修道士,野人][10]左边岸上[111]
(111)船上人数[修道士,野人][11]右边岸上[000]
(000)
(221)船上人数[修道士,野人][21]右边岸上[010]
(010)船上人数[修道士,野人][01]左边岸上[021]
(021)船上人数[修道士,野人][02]右边岸上[000]
(000)
(221)船上人数[修道士,野人][21]右边岸上[010]
(010)船上人数[修道士,野人][20]左边岸上[211]
(211)船上人数[修道士,野人][21]右边岸上[000]
(000)
(221)船上人数[修道士,野人][02]右边岸上[200]
(200)船上人数[修道士,野人][01]左边岸上[211]
(211)船上人数[修道士,野人][21]右边岸上[000]
(000)
(221)船上人数[修道士,野人][11]右边岸上[110]
(110)船上人数[修道士,野人][10]左边岸上[211]
(211)船上人数[修道士,野人][21]右边岸上[000]
(000)
√
六、实验收获与思考
该实验中所用的数据结构为邻接表,相当于重新熟悉了一遍邻接表的相关算法,以及用邻接表表示图的插边插点等相关操作;
并且完成了一次用广度优先搜索解题。
教师评分:
教师签字:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 修道士 野人 问题
![提示](https://static.bdocx.com/images/bang_tan.gif)