没有合适的资源?快使用搜索试试~ 我知道了~
《数据结构与算法》实验指导书[收集].pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 78 浏览量
2021-10-13
00:01:40
上传
评论
收藏 223KB PDF 举报
温馨提示
试读
50页
《数据结构与算法》实验指导书[收集].pdf
资源推荐
资源详情
资源评论
《数据结构与算法设计》实验指导书
.
目 录
实验一 迷宫问题 ........................................................................................................................... 1
实验二 锦标赛问题 ....................................................................................................................... 5
实验三 背包问题 ........................................................................................................................... 7
实验四 Kruskal 算法的设计 ...................................................................................................... 10
实验五 归并排序的分治策略设计 ............................................................................................. 12
实验六 哈夫曼编码 ..................................................................................................................... 14
实验七 递归与迭代程序设计 ..................................................................................................... 16
实验八 多段图问题的动态规划算法设计 ................................................................................. 18
实验九 作业调度问题 ................................................................................................................. 21
实验十 回溯算法设计 ................................................................................................................. 24
实验十一 搜索顺序的选择 ......................................................................................................... 26
实验十二 蛇和梯子 ..................................................................................................................... 28
实验十三 游戏中寻址算法的设计 ............................................................................................. 32
实验十四 旅行商问题 ................................................................................................................. 35
实验十五 骑士游历算法设计 ..................................................................................................... 38
实验十六 输油管道问题的设计与实现 ..................................................................................... 41
实验十七 邮局选址问题的设计与实现 ..................................................................................... 43
实验十八 会场安排问题的设计与实现 ..................................................................................... 45
实验十九 目录树打印程序的设计 ............................................................................................. 47
实验二十 最少演员问题 ............................................................................................................. 50
附:实验(设计)报告参考格式 ................................................................................................. 52
1
实验一 迷宫问题
[ 实验目的 ]
1.熟悉栈用法;
2.掌握回朔法及试探法程序设计技能;
[ 预习要求 ]
1. 认真阅读教材或参考书 , 掌握栈和回朔法;
2. 写出求解本实验的程序;
3. 设计好相应的测试用例。
[ 实验提示 ]
设迷宫中数组的元素为 1 表示该点道路主的阻塞,为 0 表示可通。
设 maze[1][1] 为入口, maze[m][n] 为出口。
在 maze[1][1] 和 maze[m][n] 的元素值必为 0。
在任意时刻,老鼠在迷宫中的位置可以用所在点的行下标与列下标( i,j )来表示,这
样,老鼠在迷宫中的某点 maze[i][j] 时,其可能的运动方向有八个。下图○ + 表示某时刻老
鼠所在的位置( i,j ), 相邻的八个位置分别标以 N、NE、E、SE、S、SW、W、NW(分别代表○+
点的北、东北、东、东南、南、西南、西、西北方向) ;同时,相对于( i,j ),这八个相邻
位置的坐标的值都可以计算出来。
但是,并非迷宫中的每一个点都有八个方向可走,四个角上就只有三个方向可供选择,
边上只有五个方向可供选择。 为了不在算法中每次都去检查这些边界条件, 在迷宫外面套上
一圈,其元素值均为 1。
NW
(I-1 ,J-1 )
N
(I-1 ,J)
NE
( I-1 ,J+1)
W
(I ,J-1 )
○
+
(I ,J)
E
(I , J+1)
SW
(I+1 ,J-1 )
S
(I+1 ,J)
SE
( I+1 ,J+1)
为了简化算法,根据上图所示的位置( i,j )与其相邻的八个位置的坐标关系,建立一
个下图所示的表 move,表中给出相对于位置( I,j )的八个方向上的 i 与 j 的增量值。
Move
-1 0
-1 1
0 1
2
1 1
1 0
1 -1
0 -1
-1 -1
若老鼠在( i,j )位置,要进入 SW方向 (g,h) 点,则由该增量值表来修改坐标。
g=i+move[5][0];
h=j+move[5][1];
例如:若( i,j )为( 3,4),则 SW的相邻点的坐标为( 3+1, 4-1 )。
在每个位置上都从 N方向试起,若不通,则顺时针方向试 NE方向,其余类推。
当选定一个可通的方向后, 要把目前所在的位置以及所选的方向记录下来, 以便往下走
时可依次一点一点退回来, 每退一步后接着试在该点未试过的方向。 为了避免走回到已经进
入过的点, maze[i][j]=2.
为了记录当前位置以及该位置上所选择的方向数需设一个堆栈。
#define m 6
#defing n 9
void path()
{int maze[m+2][n+2] ;
int move[8][2];
int s[54][3];
int top=0;
int i,j,k,pf=0;
for(i=0;i<m+2;++i)
for(j=0;j<n+2;++j)
scanf( “%d” ,&maze[i][j]);
maze[1][1]=2;
s[top][0]=1;
s[top][1]=1;
s[top][2]=0;
++top;
while (top!=0&&f==0)
{--top;
i= s[top][0];
j= s[top][1];
3
k= s[top][2];
while(k<8)
g=i+move[k][0];
h=j+move[k][1];
if (g==m&&h==n&&maze[g][h]==0)
{for(p=0;p<top;++p)
printf(s[p][0],s[p][1]);
printf(i,j);
printf(m,n);
f=1;
}//if
if(maze[g][h]==0)
{maze[g][h]=2;
s[top][0]=i;
s[top][1]=j;
s[top][2]=k;
++top;
i=g;
j=h;
k=0;
}//if
k=k+1;
}//while
}//while
if(f==0)
printf( “no path\n ”);
}//path
[ 实验步骤 ]
1. 先设计好迷宫,并测试你的程序,直至正确为止;
2. 将你的程序和实录的界面存盘备用。
[ 实验报告要求 ]
1. 阐述实验目的和实验内容;
2. 提交模块化的实验程序源代码;
剩余49页未读,继续阅读
资源评论
cyh76339129
- 粉丝: 1
- 资源: 14万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenrecording_20240509_230927_20240509_231814.mp3
- 基于Dart的复健科东方国际咖啡馆管理系统设计源码
- Python 常用标准库模块 1
- 弱电系统方案设计安防监控技术资料门禁网络工程图纸报价资料图纸案例典型案例:万达消防系统图
- 一篇精雕细琢的 Python 进阶总结
- man,what can I say;
- 弱电系统方案设计安防监控技术资料门禁网络工程图纸报价资料图纸案例第四篇:电缆分接箱部分
- 一篇精雕细琢的 Python 入门总结
- 基于 vxe-table 表格的适配插件,用于兼容 ant-design-vue 组件库
- 弱电系统方案设计安防监控技术资料门禁网络工程图纸报价资料图纸案例第三部分:开关站通用设计模块(24张)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功