3)尽量设计出多种算法及程序,可视情况适当加分 提示:用队列来解决比较方便.
19.猴子吃桃子问题(限1 人完成)
有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。 要求:
1)采用数组数据结构实现上述求解 2)采用链数据结构实现上述求解 3)采用递归实现上述求解
20.数制转换问题(限1 人完成)
任意给定一个M进制的数x ,请实现如下要求 1)求出此数x的10进制值(用MD表示) 2)实现对x向任意的一个非M进制的数的转换。
3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)。
21.排序综合(限1 人完成)
利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。 要求:
1)至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。并把排序后的结果保存在不同的文件中。 2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。
3)如果采用4种或4种以上的方法者,可适当加分。
22.图的遍历的实现(限1 人完成) 要求:
1)先任意创建一个图;
2)图的DFS,BFS的递归和非递归算法的实现 3)要求用有向图和无向图分别实现
4)要求用邻接矩阵、邻接表多种结构存储实现
23. 文本文件单词的检索与计数 设计要求与分析:
要求编程建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写;统计给定单词在文本文件中出现的总次数;检索输出某个单词出现在文本中的行号、在该行中出现的次数以及位置。该设计要求可分为三个部分实现:其一,建立文本文件,文
件名由用户用键盘输入;其二,给定单词的计数,输入一个不含空格的单词,统计输出该单词在文本中的出现次数;其三,检索给定单词,输入一个单词,检索并输出该单词所在的行号、该行中出现的次数以及在该行中的相应位置。 (1).建立文本文件 (2)给定单词的计数
(3)检索单词出现在文本文件中的行号、次数及其位置 (4)主控菜单程序的结构 ① 头文件包含 ② 菜单选项包含
建立文件、单词定位、单词计数、退出程序 ③ 选择1-4执行相应的操作,其他字符为非法。
24.任意长的整数加法(限1 人完成)
问题描述:设计一个程序实现两个任意长的整数的求和运算。
基本要求:利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程序。要求输入和输出每四位一组,组间用逗号隔开。如:1,0000,0000,0000,0000。
25.串的查找和替换 (限1 人完成)
问题描述:打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘。
26.约瑟夫环 (限1 人完成)
问题描述:编号为1,2… n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他的顺时针方向上的下一个开始重新从1报数,如此下去,直至所有人全部出列为止,设计一个程序求出出列顺序。 基本要求:
1、利用单循环链表作为存储结构模拟此过程; 2、键盘输入总人数、初始报数上限值m及各人密码; 3、按照出列顺序输出各人的编号。
27.客户消费积分管理系统(限1 人完成)
问题描述:针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。 基本要求:
1. 采用一定的存储结构进行客户信息的存储; 2. 对客户的信息可以进行修改、删除、添加; 3. 能够根据消费情况进行客户积分的计算; 4. 根据积分情况实行不同程度的打折优惠;
28.产品进销存管理系统(限1 人完成)
问题描述:针对某一种行业的库房的产品进销存情况进行管理。 基本要求:
1. 采用一定的存储结构对库房的货品及其数量进行分类管理; 2. 可以进行产品类的添加、产品的添加、产品数量的添加;
3. 能够查询库房每种产品的总量、进货日期、销出数量、销售时间等;
29. 特殊矩阵的压缩存储算法的实现(限1 人完成)
问题描述:对于特殊矩阵可以通过压缩存储减少存储空间。 基本要求:
1.针对多种特殊矩阵进行压缩存储,并能显示压缩后的相关地址和值; 2.输入在原来特殊矩阵中的地址,要求能从压缩后的矩阵中读出相应的值;
30.算术表达式的求解(限1 人完成)
问题描述:给定一个算术表达式,通过程序求出最后的结果。 基本要求:
1. 从键盘输入要求解的算术表达式;
2. 采用栈结构进行算术表达式的求解过程; 3. 能够判断算术表达式正确与否; 4. 对于错误表达式给出提示;
5. 对于正确的表达式给出最后的结果;
31.实时监控报警系统(限1 人完成)
问题描述:建立一个报警和出警管理的系统 基本要求:
1. 采用一定的存储结构存储报警信息,要求有内容、时间; 2. 有一次的出警就应该在待处理的信息中删除这条信息; 3. 记录出警信息;
4. 待处理信息过多时会发出警告;
32. 车厢调度 (限1 人完成)
一列货运列车共有n节车厢,每节车厢将停放在不同的车站。假定n个车站的编号分别为 1 ~n,货运列车按照第n站至第1站的次序经过这些车站。车厢的编号与它们的目的地相同。为了便于从列车上卸掉相应的车厢,必须重新排列车厢,使各车厢从前至后按编号1到n的次序排列。当所有的车厢都按照这种次序排列时,在每个车站只需卸掉最后一节车厢即可。我们在一个转轨站里完成车厢的重排工作,在转轨站中有一个入轨、一个出轨和k个缓冲铁轨(位于入轨和出轨之间),每个缓冲铁轨的容量小于总车厢个数的1/k。图5-5a 给出了一个转轨站,其中有k= 3个缓冲铁轨H1,H2和H3,每个缓冲铁轨的容量为2个车厢。开始时,n节车厢的货车从入轨处进入转轨站,转轨结束时各车厢从右到左按照编号1至编号n的次序离开转轨站(通过出轨处)。在图5-5a 中,n= 9,车厢从后至前的初始次序为5,8,1,7,4,2,9,6,3。如下图所示,给出了按所要求的次序重新排列后的结果。
具有三个缓冲铁轨的转轨站 a) 开始 b) 结束
要求:对于给定的初始状态与终止状态,判断是否能在指定缓冲铁轨的容量条件下调度成功,如果能,请输出调度的过程。 33.迷宫问题(栈) 问题描述:
以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 基本要求:
首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向,如:对于下列数据的迷宫,输出的一条通路为:(1,1,1),(1,2,2),(3,2,3),(3,1,2),?。 测试数据:
迷宫的测试数据如下:左下角(1,1)为入口,右下角(8,9)为出口。 实现提示:
计算机解迷宫通常用的是“穷举求解”方法,即从入口出发,顺着某个方向进行探索,若能走通,则继续往前进;否则沿着原路退回,换一个方向继续探索,直至出口位置,求得一条通路。假如所有可能的通路都探索到而未能到达出口,则所设的迷宫没有通路。 可以二维数组存储迷宫数据,通常设定入口点的下标为(1,1),出口点的下标为(n,n)。为处理方便起见,可在迷宫的四周加一圈障碍。对于迷宫中任一位置,均可约定有东、南、西、北四个方向可通。 选做内容:
(1)编写递归形式的算法,求得迷宫中所有可能的通路; (2)以方阵形式输出迷宫及其通路。
34. 病毒测试程序 本题的任务是:
当整个网络被感染后,计算有多少台机器被某个特定变种所感染。 输入要求:
输入由若干组测试数据组成。
每组数据的第1行包含2个整数M和N(1≤M,N≤500),接下来是一个M*N的矩阵表示网络的初始感染状态,其中的正、负整数的意义如题目描述中所定义。
下面一行给出一个正整数Q,是将要查询的变种的个数。接下去的Q行里,每行给出一个变种的类型。
当M或N为0时,表示全部测试结束,不要对该数据做任何处理。 输出要求:
对每一组测试,在一行里输出被某个特定变种所感染的机器数量。
35.并查集:检查网络 题目要求:给定一个计算机网络以及机器间的双向连线列表,每一条连线允许两端的计算机进行直接的文件传输,其他计算机间若存在一条连通路径,也可以进行间接的文件传输。请写出程序判断:任意指定两台计算机,它们之间是否可以进行文件传输?
输入要求:输入若干测试数据组成。对于每一组测试,第1行包含一个整数N(≤10000),即网络中计算机的总台数,因而每台计算机可用1到N之间的一个正整数表示。接下来的几行输入格式为I C1 C2或者 C或者C C1C2或者S,其中C1和C2是两台计算机的序号,I表示在C1和C2间输入一条连线,C表示检查C1和C2间是否可以传输文件,S表示该组测试结束。
当N为0时,表示全部测试结束,不要对该数据做任何处理。
输出要求:对每一组C开头的测试,检查C1和C2间是否可以传输文件,若可以,则在一行中输出“yes”,否则输出“no”。 当读到S时,检查整个网络。若网络中任意两机器间都可以传输文件,则在一行中输出“The network is connected.”,否则输出“There are k components.”,其中k是网络中连通集的个数。
两组测试数据之间请输出一空行分隔。
36.广义表的应用
由于广义表在结构上较线性表复杂得多,因此,广义表的运算也不如线性表简单。本设计要求实现的广义表的建立、查找、输出、取表头和取表尾以及求深度、求逆表等。 本设计用一个主控菜单程序控制,共分为6个子系统。 (1).建立广义表 (2)输出广义表 (3)结点的查找 (4)求广义表表头 (5)求广义表表尾 (6)求广义表的深度
37.网络流:宇宙旅行 题目要求:
在走遍了地球上的所有景点以后,旅游狂人开始计划他的宇宙旅行项目。经过谨慎调查,他目前掌握了一张各卫星空间站可以临时容纳的旅客人数列表。但旅客从一个星球飞往另一个星球时,需要在若干卫星空间站临时停靠中转,而这些空间站不能接待任何旅客驻留,旅客必须立刻转乘另一艘飞船离开,所以空间站不能接待超过自己最大容量的旅客流。为了估计预算,现在旅游狂人需要知道终点星球的接待站应该设计多大容量,才能使得每艘飞船在到达时都可以保证让全部旅客下船。 输入要求:
输入若干组测试数据组成。
每组测试数据的第1行包含旅行的起点星球和终点星球的名称和一个不超过500的正整数N(N为0标志全部测试结束,不要对该数据做任何处理)。
接下来的N行里,数据格式为:sourcei capacityi ,其中sourcei和destinationi是卫