您好,欢迎来到六九路网。
搜索
您的当前位置:首页数据结构第二次课程设计

数据结构第二次课程设计

来源:六九路网
选题一:哈夫曼(Huffman)编/译码器

【问题描述】

利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼码的编/译码系统。 【任务要求】

一个完整的系统应具有以下功能: 1) I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值(见

下表),建立哈夫曼树,并将它存于文件hfmTree.txt中。 2) E:编码(Encoding)。利用已建好的哈夫曼树(如不在内存,则从文件hfmTree.txt

中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。 3) D:译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,

结果存入文件TextFile中。 4) P:打印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个

代码。同时将此字符形式的编码文件写入文件CodePrin中。 5) T:打印哈夫曼树(Tree Printing)。将已在内存中的哈夫曼树以直观的方式(树或

凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint中。

【测试数据】

1) 用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码

和译码:“THIS PROGRAM IS MY FAVORITE”。

字符 空格 A B 频度 186 13 字符 频度 C 22 D E F 32 103 21 G 15 H 47 I 57 J 1 K 5 Y 16 L 32 Z 1 M 20 N O P Q R S T U V W X 57 63 15 1 48 51 80 23 8 18 1 【成绩评定】

1) 完成“任务要求”第1-3项成绩评定为“及格”-“中”。 2) 完成“任务要求”第1-4项成绩评定为“良”以上。 3) 完成“任务要求”第1-5项成绩评定为“优”以上。

选题二:算术表达式与二叉树

【问题描述】

一个表达式和一棵二叉树之间,存在着自然的对应关系。写一个程序,实现基于二叉树表示的算术表达式的操作。 【任务要求】

假设算术表达式Expression内可以含有变量(a~z)、常量(0~9)和二元运算符(+,-,*,/,^(乘幂))。实现以下操作:

1) ReadExpre(E)—以字符序列的形式输入语法正确的前缀表达式并构造表达式E。 2) WriteExpre(E)—用带括弧的中缀表达式输出表达式E。 3) Assign(V,c)—实现对变量V的赋值(V=c),变量的初值为0。 4) Value(E)—对算术表达式E求值。

5) CompoundExpr(P,E1,E2)--构造一个新的复合表达式(E1)P(E2) 【测试数据】

1) 分别输入0;a;-91;+a*bc;+*5^x2*8x;+++*3^x3*2^x2x6并输出。 2) 每当输入一个表达式后,对其中的变量赋值,然后对表达式求值。 【成绩评定】

1. 完成“任务要求”第1项和第2项成绩评定为“及格”-“中”。 2. 完成“任务要求”第3项至第5项成绩评定为“良”及以上。

选题三:银行业务模拟与离散事件模拟

【问题描述】

假设某银行有4个窗口对外接待客户,从早晨银行开门(开门9:00am,关门5:00pm)起不断有客户进入银行。由于每个窗口在某个时刻只能接待一个客户,因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进入银行的客户(建议:客户进入时间使用随机函数产生),如果某个窗口的业务员正空闲,则可上前办理业务;反之,若4个窗口均有窗户所占,他便会排在人数最少的队伍后面。 【任务要求】

1) 编制一个程序以模拟银行的这种业务活动并计算一天中客户在银行逗留的平均时

间。

2) 建议有如下设置:

a) 客户到达时间随机产生,一天客户的人数设定为100人。 b) 银行业务员处理时间随机产生,平均处理时间10分钟。 3) 将一天的数据(包括业务员和客户)以文件方式输出。 【测试数据】

由随机数产生器生成 【成绩评定】

1) 能按要求完成“任务要求”第1项成绩评定为“及格”-“中”。 2) 完成“任务要求”第2项至第3项成绩评定为“良”及以上。

选题四:文学研究助手与模式匹配算法KMP

【问题描述】

文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。试写一个实现这一目标的文字统计系统 【任务要求】

1) 英文小说存于一个文本文件中。待统计的词汇集合要一次输入完毕,即统计工作必

须在程序的一次运行之后就全部完成。程序的输出结果是每个词的出现次数和出现位置所在的行的行号,格式自行设计。待统计的“单词”在文本串中不跨行出现,它或者从行首开始,或者前置以一个空格符。 2) 模式匹配要基于KMP算法。

3) 推广到更一般的模式集匹配问题,并设待查模式串可以跨行(提示:定义操作

GetAChar)。

【测试数据】

1) 文本文件为testword.c

2) 待统计的词集:if、else、for、while、return、void、int、char、typedef、struct 【成绩评定】

1) 完成“任务要求”第1项成绩评定为“及格”-“中”。

2) 完成“任务要求”第2项至第3项成绩评定为“良”及以上。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务