数据结构课程设计题目(1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构课程设计题目

1.表达式求值

问题描述:

一个算术表达式是由操作数(operand)、运算符(operator)和界限符(delimiter)组成的。假设操作数是正整数,运算符只含加减乘除等四种运算符,界限符有左右括号和表达式起始、结束符“#”,如:#(7+15)*(23-28/4)#。引入表达式起始、结束符是为了方便。编程利用“算符优先法”求算术表达式的值。

基本要求:

(1)从键盘读入一个合法的算术表达式,输出正确的结果。

(2)显示输入序列和栈的变化过程。

选作内容:

(1)扩充运算符集合。

(2)引入变量操作数。

(3)操作数类型扩充到实数。

2. 简单的员工管理系统

问题描述:

每个员工的信息包括编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统的功能如下。

实习要求:

(1)查询:按特定条件查找员工。

(2)修改:按编号对某个员工的某项信息进行修改。

(3)插入:加入新员工的信息。

(4)删除:按编号删除已离职的员工的信息。

(5)排序:按特定条件对所有员工的信息进行排序。

3. 迷宫问题

问题描述:

迷宫实验是取自心理学的一个古典实验。在该实验中,把一只老鼠从一个无顶大盒子的门放入,在盒中设置了许多墙,对行进方向形成了多处阻挡。盒子仅有一个出口,在出口处放置一块奶酪,吸引老鼠在迷宫中寻找道路以到达出口。对同一只老鼠重复进行上述实验,一直到老鼠从入口到出口,而不走错一步。老鼠经多次实验终于得到它学习走迷宫的路线。设计一个计算机程序对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。

实现提示:

可以利用一个二维数组maze[i][j]表示迷宫,其中1<=i<=m,1<=j<=n,m和n分别代表迷宫的行数和列数。数组元素值为1表示该位置是墙壁,不能通行;元素值为0表示该位置是通路。假定从maze[1][1]出发,出口位于maze[m][n],移动方向可以是8个方向(东、东南、南、西南、西、西北、北和东北)。计算机解迷宫时,通常用的是“穷举求解”的方法,即从入口出发,顺某一方向向前探索,若能走通,则继续往前走;否则沿原路退回,换一个方向再继续探索,直至所有可能的通路都探索到为止。为了保证在任何位置上都能沿原路退回,需要用一个后进先出的栈结构来保存从入口到当前位置的路径。

4.最小生成树的两种算法

要求:任意创建一个图,分别用Prime算法和kruskal算法,求出该图的最

小生成树。

5.二叉树的竖向显示

问题描述:建立二叉树按照二叉链表方式存储,编写算法,要求实现二叉树的竖向显示(竖向显示就是二叉树的按层显示)。如下图所示:

测试数据:输入AB∪D∪∪CE∪F∪∪∪ (其中符号“∪”表示空格(space)字符)

6.停车场管理

问题描述:

设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的长短交费(在便道上停留的时间不收费)。

基本要求:

(1)要求以顺序栈模拟停车场,以链队列模拟便道。

(2)从终端读入汽车到达或离去的数据,每组数据包括三项:①是“到达”还是“离去”;②汽车牌照号码;③“到达”或“离去”的时刻。与每组输入信息相应的输出信息为:如果是到达的车辆,则输出其在停车场中或便道上的位置;如果是离去的车辆,则输出其在停车场中停留的时间和应交的费用。

7.约瑟夫环

问题描述:约瑟夫问题的一种描述是:编号为1,2,…,n 的n 个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个整数作为报数上限值m,从第一个人开始顺时针自1开始顺序报数,报到m 时停止报数。报

m 的人出列,将他的密码作为新的m 值,从他在顺时针方向上的下一个人开始

重新从1报数,如此下去,直至所有的人全部出列为止。试设计一个程序,求出出列顺序。

利用单向循环链表作为存储结构模拟此过程,按照出列顺序打印出各人的编号。

测试数据:

m 的初值为20;n =7,7个人的密码依次是:3,1,7,2,4,8,4,出列的顺序为6,1,4,7,2,3,5。

8.交通咨询系统

设计一个交通咨询系统,能让旅客咨询从任一个城市顶点到另一个城市顶点之间的最短里程、最低花费或最少时间等问题。对于不同的咨询要求,可输入城市间的路程、所需时间或所需费用。

9.学生管理系统

已知有20个学生记录(包括学号、姓名、班级、性别、出生年月、成绩,所有学生以学号从小到大排序。

要求:编程序实现查询、排序、插入、删除等功能。具体要求如下:

(1)要求显示如下界面

****************************************

1--------------查询

2--------------排序

3--------------插入

4--------------删除

5--------------退出

****************************************

通过选择1-4来确定要做哪一个操作。

(2)若选1,则出现如下界面

****************************************

1.1----------按学号查询

1.2----------按姓名查询

1.3----------按成绩查询

****************************************

通过选择1.1-1.3来确定要做哪一个操作,找到该生将学生记录输出到屏幕,若查无此人,输出相关信息。

(3)若选2,则按成绩从大到小排序,姓名,学号顺序也随之调整。

(4)若选3,将一个新学生记录按学号顺序插入。

(5)若选4,删除指定学生的记录。

(6)若选5,则退出程序。

(7)以上各个功能均编写成子函数,由主函数调用实现。

10.利用链表实现工资报表管理系统

已知N个职工的姓名、职工编号、基本工资、附加工资和扣除工资。

要求:

编写函数:①计算每个职工的实发工资;②按职工编号由小到大顺序排列,相应数据也要随之调整;③要求输入一个职工编号,找出该职工的数据,从主函数输入要查找的职工号,输出该职工的数据;

以上各个功能均编写成子函数,由主函数调用实现。

根据题意此题用4个函数完成:

main 函数:总控函数

compute函数:计算函数(求每个职工的实发工资)

sort函数:排序函数(按职工编号从小到大排列)

search函数:查找函数(按给定的职工编号进行查找)

11.哈夫曼编码、译码器

相关文档
最新文档