設計―
题目二选一
1.敢死队问题
【问题描述】
有M个敢死队员要炸掉敌人的一碉堡,谁都不想去,排长决定用轮回数数的办法来决定哪个战士去执行任务。如果前一个战士没完成任务,则要再派一个战士上去。现给每个战士编一个号,大家围坐成一圈,随便从某一个战士开始计数,当数到5时,对应的战士就去执行任务,且此战士不再参加下一轮计数。如果此战士没完成任务,再从下一个战士开始数数,被数到第5时,此战士接着去执行任务。以此类推,直到任务完成为止。
• 排长是不愿意去的,假设排长为1号,请你设计一程序,求出从第几号战士开始计数才能让排长最后一个留下来而不去执行任务。
2。
约瑟夫环问题
•任务:编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。 要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。
•测试数据: m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,则正确的输出是什么?
•要求: 输入数据:输入m的初值,n ,输入每个人的密码,建立单循环链表。
•输出形式:建立一个输出函数,将正确的输出序列。
設計二
•1.数制转换问题
•【问题描述】
• 任意给定一个M进制的数x ,请实现如下要求
•求出此数x的10进制值(用MD表示)
•实现对x向任意的一个非M进制的数的转换。
•2.迷宫问题
•【问题描述】
•把一只老鼠放进一个无盖的大箱内, 箱内设置若干隔板, 使老鼠走动的方向受到阻碍, 看其如何找到一条通道, 走出大箱。
•模型表示
•现用二维数组maze[m][n]来模拟迷宫, 数组元素为0表示此路可通, 数组元素为1表示此路不通。不失一般性, 设迷宫入口是maze[1][1], 出口maze[m][n],且maze[1][1]=0, maze[m][n]=0。
設計 三
实验三 哈夫曼编码/译码器
利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本,但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一哈夫曼编/译码系统。
基本要求:
(1)初始化:从终端输入字符集的大小n,以及n个字符和n个权值,建立哈夫曼树。
(2)输出哈夫曼树,及各字符对应的编码。
(3)编码:利用建好的哈夫曼树,对输入的待发送电文进行编码。同时输入原文及编码串。
(4)译码:利用建好的哈夫曼树,对输入的已接收电文进行译码。同时输入编码串及原文。
設計 四
实验4. 图的应用:校园导游咨询
设计目的:
了解数据结构,熟悉图的应用,并利用迪杰斯特拉算法求得2点之间的最短路径。
【问题描述】
(1)设计你的学校的校园平面图,所含景点不小于5个。以图中的顶点表示学校的各个景点,存放景点名称,代号,简介等信息;以边表示路径,存放路径,存放路径的长度等相关信息。
(2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的最短的简单路径。
設計
【问题描述】
设计哈希表实现电话号码查询系统。基本要求:
1、设每个记录有下列数据项:电话号码、用户名、地址;
2、从键盘输入各记录,分别以电话号码和用户名为关键字建立哈希表;
3、采用再哈希法解决冲突;
4、查找并显示给定电话号码的记录;
5、查找并显示给定用户名的记录。