1、 1 课 程 设 计 报 告 课程名称课程名称 数据结构数据结构 课题名称课题名称 公园导游图公园导游图 专专 业业 计算机科学与技术计算机科学与技术 班班 级级 计算机计算机 0702 学学 号号 姓姓 名名 指导教师指导教师 2009 年年 10 月月 26 日日 2 1 设 计 内容与 设计要求设 计 内容与 设计要求 1.1 设计内容设计内容 1.1.1 算术算术 24 游戏演示游戏演示 由系统随机生成 4 张扑克牌, 用户利用扑克牌的数字及运算符号“+”、 “”、 “*”、“/”及括号“(”和“)”从键盘上输入一个计算表达式,系统运行后得出计算 结果,如果结果等于 24,则显示“Co
2、ngratulation!”,否则显示“Incorrect!” 设计思路: 从键盘输入中缀表达式, 然后将中缀表达式转换为后缀表达式, 利用后缀表达式求值。 1.1.2 迷宫探索迷宫探索 随机生成一个迷宫图,迷宫大小为 N*N,N 预定义为常数,修改N 的值可 以改变迷宫的大小。用白色表示可走的路,蓝色表示墙壁不可以通过。系统设 计两种运行方式:一种是系统自动探索(用递归方法实现) ;另一种是由人工 操作探索通路。 设计思路:程序首先要考虑迷宫的表示,这是一个二维关系图,所以可选 择二维数组来存储。数组元素只有两种值 0 和 1,分别代表通路和墙壁。图形 的显示可以根据数组元素的值来确定。如果
3、是人工探索,则依据按键来确定探 索物的位置坐标,利用循环语句实现。如果是系统自动探索,可采用递归算法 实现。 1.1.3 二叉树遍历演示二叉树遍历演示 演示遍历二叉树的过程, 所以首先建立二叉树, 并用图形显示出树的形状。 建立的过程是采用前序便利的方法来创建,设计两种生成树的方式:一种是系 统随机生成,另一种是人工输入。考虑到屏幕界面的有限性,限定二叉树不超 过 5 层,最多 26 个字符,输入字符小数点“.”代表 NULL。初始树为某种颜色 的结点,三种情况的遍历采用填充另外一种醒目的颜色,来表示当前遍历的结 点,同时显示该结点的访问序号。同时在遍历的过程中在遍历图形的下方显示 出遍历序列
4、。 1.1.4 数组应用数组应用 按照行优先顺序将用户随机输入的数据建成2维数组并以图形方式逐步显 3 示出来,然后再按照列优先顺序以图形方式逐步输出相应数组。 1.1.5 拓扑排序演示拓扑排序演示 演示拓扑排序的过程。按照有向图给出的次序关系,将图中顶点排成一个 线性序列,对于有向图中没有限定次序关系的顶点,则可以人为加上任意的次 序关系。要求每输出一个顶点后就演示从图中删去此顶点以及所有以它为尾的 弧。 1.1.6 图的遍历图的遍历 演示图的深度优先, 广度优先遍历过程,并输出原图结构及遍历结果。要 求图的结点数不能少于 6 个。可以由系统随机生成图,也可以由用户手动输入 图。报告中要写出
5、画图的思路;画出图的结构,有兴趣的同学可以进一步改进 图的效果。 1.1.7 八皇后问题演示八皇后问题演示 在 8*8 的棋盘上摆放 8 个皇后,使他们不在同一条对角线上和不在一行和 列上。 解决 8 皇后时,在安放第 i行皇后时,需要在列的方向从 1 到 n试探(j =1, n):首先在第 j 列安放一个皇后,如果在列、主对角线、次对角线方向有 其它皇后,则出现攻击,撤消在第 j 列安放的皇后。如果没有出现攻击,在第 j 列安放的皇后不动,递归安放第 i+1 行皇后。 该课题要求求解可能的方案及 方案数并逐步演示摆放皇后的过程。 1.1.8 双链表创建演示双链表创建演示 建立一个递增有序递增
6、有序的双链表。功能是随机生成 8 个结点数据,每生成一个 结点则申请空间得到一个指针,将数据存放到指针所指的数据域中,然后将结 点插入到已经排好序的双链表中。所以第一步工作是判断新结点的插入位置, 第二不演示插入过程中指针的变化,第三步显示插入后的链表结果。 1.1.9 公园导游图公园导游图 给出一张某公园的导游图,游客通过终端询问可知:从某一景点到另一景 点的最短路径。游客从公园大门进入,选一条最佳路线,使游客可以不重复地 游览各景点,最后回到出口(出口就在入口旁边) 。要求用图示展示最佳路径。 1.2 选题方案:选题方案: 4 所选题目根据学号确定,学号模 9 加 1,即(学号%9+1) 。如你的学号为 12,则所选题目号为:12%9+1(题目 4) 。注意,所有的课题都要求用图形 方式演示步骤和结果。有兴趣的同学可以自己针对数据结构课程中所讲算法来 设计一个演示过程的算法,但要预先告知老师,经过审批,方可确定课题。 1.3 设计要求:设计要求