输信息的信道),每端都需要一个完整的编译码系统。试为这样的信息收发站写一个哈夫曼码的编译码系统。【基本要求】一个完整的系统应具有以下功能:(1)I:初始化(I
itializatio
)。从终端读入字符集大小
,以及
个字符和
个权值,建立哈夫曼树,并将它存于文件hfmTree中。(2)E:编码(E
codi
g)。利用已建好的哈夫曼树(如不在内存,则从文件hfmTree中读入),对文件ToBeTra
中的正文进行编码,然后将结果存入文件CodeFile中。(3)D:译码(Decodi
g)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。(4)印代码文件P:(Pri
t)将文件CodeFile以紧凑格式显示在终端上,。每行50个代码。同时将此字符形式的编码文件写入文件CodePri
中。(5)T:印哈夫曼树(Treepri
ti
g)。将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示出,同时将此字符形式的哈夫曼树写入文件TreePri
t中。【测试数据】(1)利用教科书例62中的数据调试程序。
7
f(2)用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码和译码:“THISPROGRAMISMYFAVORITE”。字符频度字符频度A64N57B13O63C22P15D32Q1E103R48F21S51G15T80H47U23I57V8J1W18K5X1L32Y16M20Z1
【实现提示】(1)编码结果以文本方式存储在文件CodeFile中。(2)用户界面可以设计为“菜单”方式:显示上述功能符号,再加上“Q”表示退出运行Quit。请用户键入一个选择功能符。此功能执行完毕后再显示此菜单,直至某次用户选择了“Q”为止。(3)在程序的一次执行过程中,第一次执行I、D或C命令之后,哈夫曼树已经在内存了,不必再读入。每次执行中不一定执行I命令,因为文件hfmTree可能早已建好。
3散列法的实验研究
【问题描述】(1)基本要求:设每个记录有下列数据项:电话号码、用户名、地址;从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;采用一定的方法解决冲突;查找并显示给定电话号码的记录;查找并显示给定用户名的记录。(2)进一步完成内容:系统功能的完善:设计不同的散列函数,比较冲突率;在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。
4建立通信网络
【问题描述】在
个城市建设通信网络,只需架设
1条线路即可。设计一个程序,求出如何以最低的经济代价建设这个通信网。(该问题为最小生成树问题)【基本要求】(1)利用图作为存储结构r