《数据结构》课程设计报告
课程名称:课程设计题目:姓名:院系:专年学业:级:号:《数据结构》课程设计
指导教师:
2011年月日
f目
1、程序设计的目的2、设计题目3、分析4、设计思想5、算法6、测试结果7、调试分析8、小结
录
1、课程设计的目的
1、2、3、4、5、6、熟练使用C语言编写程序,解决实际问题;
了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;提高综合运用所学的理论知识和方法独立分析和解决问题的能力;学习并熟悉栈的有关操作;
利用栈实现实际问题;
2、设计题目
【马踏棋盘】问题描述:将马随机放在国际象棋的8X8棋盘Bo阿rd0707的某个方格中,马按走棋规则进行移动。要求每个方格上只进入一次,走遍棋盘上全部64个方格。编制非递归程序,求出马的行走路线,并按求出的行走路线,将数字1,2,,64依次填入8X8的方阵输出之。测试数据:由读者指定可自行指定一个马的初始位置。实现提示:每次在多个可走位置中选择一个进行试探,其余未曾试探过的可走位置必须用适当结构妥善管理,以备试探失败时的“回溯”悔棋使用。并探讨每次选择位置的“最佳
f策略”,以减少回溯的次数。
3、分析
确定输入值的范围,输入马的初始行坐标X和Y,X和Y的范围都是1到8之间。程序的功能是输出马走的步骤,要使马从任一起点出发,通过程序能找到下一个地点,然后遍历整个棋盘。每次在多个可走位置中选择一个进行试探,其余未曾试探过的可走位置必须用适当结构妥善管理,以备试探失败时的“回溯”悔棋使用。并探讨每次选择位置的“最佳策略”,以减少回溯的次数。输出时可以用二维数组。
4、设计思想
输入马初始位置的坐标。将初始位置进栈,经过一个while循环,取出符合条件的栈顶元素。利用函数,找出栈顶元素周围未被占用的新位置,如果有,新位置入栈;否则弹出栈顶元素。再进行判断,最后输出。位置的存储方式,栈的存储方式和一些操作函数为:i
cludemallochif
defdefi
eSTACK_HSTACK_H
structPoi
ti
txi
tyi
tfromdefi
eSTACKSIZEdefi
eSTACKINCREASEstructStackPoi
ttopPoi
tbasei
tle
gth1070
fboolI
itstackStacksboolPushStacksPoi
teboolPopStacksPoi
tevoidDestroyStackStacksboolStackEmptyStackSboolGetTopStackSPoi
tei
tGetDeepStackS
e
dif
5、算法
i
cludemallochif
defdefi
eSTACK_HSTACK_H
structPoi
tr