- 1、本文档共60页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课程名称: 数据结构课程设计
学 院: 管理学院
专业班级: 10信息管理与信息系统(2)班
姓 名: 王高智
学 号: 3110004891
指导老师: 丁天翔
2012年06月18日
目录
哈夫曼编码与译码 2
一、 问题及功能分析 2
(一) 要求: 2
(二) 分析: 2
二、 详细设计 2
(一) 读取信息 2
(二) 统计文本信息 2
(三) 设计编码和译码方案 3
(四) 计算压缩比 3
(五) 整体流程 3
三、 程序实现 3
(一) 汇总 3
(二) 具体实现代码 3
1. com.gauze.Main 3
2. com.gauze.charstatistics.CharData 4
3. com.gauze.charstatistics.CharDataMapActor 6
4. com.gauze.charstatistics.CharReader 9
5. com.gauze.util.HaffmanNode 10
6. com.gauze.util.HaffmanTree 11
四、 调试分析 14
(一) 统计英文文本: 14
(二) 统计含有中英文文本 15
(三) 查询只含有字符串“AAAABBBCDDBBAAA”的文本(课本示例): 16
手机信息管理 17
一、 问题及功能分析 17
(一) 功能要求: 17
(二) 性能要求: 17
(三) 分析: 17
二、 详细设计 20
(一) 持久层 20
(二) 逻辑层 21
(三) 展示层 23
三、 程序实现 27
四、 调试分析 42
(一) 通讯录管理 42
(二) 通话记录 47
(三) 信箱管理 53
五、 课设总结 59
哈夫曼编码与译码
问题及功能分析
要求:
从某文本文件中统计其中字符使用频率(由英语字母构成),建立对应的哈夫曼树,设计哈夫曼编码与译码方案,计算压缩比。
分析:
读取并统计文本信息(统计每个字符的使用次数并计算使用频率) ( 根据统计的信息设计编码方案 ( 译码 ( 计算压缩比。
详细设计
读取信息
使用java.io.BufferedReader类读取文本字符。
统计文本信息
需要统计的信息为字符的出现次数和文本的字符总数。
字符总数:每读取一个字符,字符总数加1;
字符出现次数:
特征:
每个字符对应的次数随着读取的进行可能会发生改变,属于动态变量;
不允许出现两个存储到相同的字符信息对象;
当读取到新的字符时,需要添加新的存储字符信息的对象;
每读取到一个字符,需要对所有已经读取的字符进行查找更新数据,查找频繁。
分析:因为不允许存储重复的对象,因此应该采用Set集合进行存储,由于查找更新数据比较频繁,为提高效率,应该采用Hash散列存储结构,综上可得出结论:采用HashSet结构存储数据效率最高。
设计编码和译码方案
根据统计的信息:权值(频率)进行编码和译码。
计算压缩比
计算压缩前和压缩后的文件字节总数只比。
整体流程
程序实现
汇总
类 类型 描述 com.gauze.Main class 主方法 com.gauze.charstatistics.CharData class 存储字符信息 com.gauze.charstatistics.CharDataMapActor class 操作字符信息 com.gauze.charstatistics.CharReader class 读取字符 com.gauze.util.HaffmanNode class 哈夫曼树节点类 com.gauze.util.HaffmanTree class 哈夫曼数类
具体实现代码
com.gauze.Main
package com.gauze;
import java.io.FileNotFoundException;
import com.gauze.charstatistics.CharDataMapActor;
import com.gauze.charstatistics.CharReader;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
try {
CharReader reader = new CharReader(./中文.txt);
CharDataMapActor map = ne
您可能关注的文档
- 制冷专业低温课程设计.doc
- 关于注塑模在角落处冷却影响的研究.doc
- 办公大楼监控及防盗报警系统实习报告.doc
- 关于历史教学实习中教学能力培养的调查报告.doc
- 单片机课程设计报告---模拟病房呼叫系统.doc
- 制备纳米碳化钒毕业设计.doc
- 关于青岛汽车产品市场需求调查报告.doc
- 医院管理信息系统开题报告.doc
- 剪板机结构设计开题报告.doc
- 印刷课程设计---牙膏包装的印刷工艺分析.doc
- 2024中考真题抢先练语文【第二期】.pdf
- 2024中考真题抢先练·语文【第一期】.pdf
- 人教版七年级上册数学第四章整式的加减—化简求值训练(含答案).docx
- 人教版(2024)地理七年级上册3.2世界的地形 练习题(含答案).docx
- 人教版(2024)地理七年级上册第二章第一节 地图的阅读 教案(表格式).docx
- 人教版七年级上册英语期中综合练习(含答案).docx
- 人教版三年级上册数学第七单元长方形和正方形测试卷(含解析).docx
- 人教版三年级上册数学第三单元测量测试 (1)(含解析).docx
- 四川省仁寿第一中学校南校区2024-2025学年高三上学期10月月考化学试题(含答案).docx
- 湘教版(2024)地理七年级上册 第三章第二节 世界的地形 教案(表格式).docx
文档评论(0)