- 0
- 0
- 约1.49万字
- 约 27页
- 2019-09-02 发布于江西
- 举报
PAGE
PAGE 4
*******************实践教学
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2011年春季学期
算法与数据结构 课程设计
题 目: 赫夫曼编码译码器设计
专业班级:软件一班
姓 名: 姚乐
学 号:
指导教师: 张永
成 绩:____________________
目录
摘 要………………………………………………………..2
正文…………………………………………………………3
总体设计……………………………………….3
函数之间的调用关系………………………….3
二.详细设计………………………………………….3
1.数据的逻辑结构…………………………….3
2.数据的存储结构…………………………….4
3.数据的运算…………………………………4
(1)流程图4
三.源程序(带注释)5
四.运行测试19
五.总结25
六.主要参考文献25
摘要
哈夫曼树的一个经典应用就是哈夫曼编码。利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码。对于双工信道,每端都需要一个完整的编/译码系统。本次课程设计就是为这样的信息收发站写一个哈夫曼的编/译码器。
关键字:建立哈夫曼树、编码、译码、文件的打开和关闭
。
一.总体设计
函数之间的调用关系
函数之间调用的功能模块图如下图所示
Jiema()Menu1()Main()
Jiema()
Menu1()
Main()
BianMa()
BianMa()
Loadfile()
Loadfile()
L
Loadfile2()
swap()MinHeapify()MinHeapify()swap()BuildMinHeap()HeapSort()BianMa_all(HT,HC,fpname)CreateHuffman(HT,w,count)
swap()
MinHeapify()
MinHeapify()
swap()
BuildMinHeap()
HeapSort()
BianMa_all(HT,HC,fpname)
CreateHuffman(HT,w,count)
S
Savefile()
BianMa()
BianMa()
BianMa_all(HT,HC,fpname)CreateHuffman(HT,w,count)
BianMa_all(HT,HC,fpname)
CreateHuffman(HT,w,count)
HeapSort
HeapSort()
MinHeapify()swap(
MinHeapify()
swap()
BuildMinHeap()
MinHeapify
MinHeapify()
swap(
swap()
二.详细设计
1.数据的逻辑结构
本程序主要讨论哈夫曼树的逻辑结构,而简化之即时讨论一般二叉树的逻辑结构。
假设有A ,B ,C, D, E, F, G ,H ,I节点,树形结构如下:
A
A
CB
C
B
DEF
D
E
F
IHG
I
H
G
:
2.数据的存储结构
(1).哈夫曼树的存储结构:
定义:typedef struct
{
int weight; /*权*/
int parent,lchild,rchild;
int asc;
}HTNode,*HuffmanTree; //存储赫夫曼树的结点类型
weight是其权值,lchild为另一节点即左孩子的序号,同理rchild为另一节点即右孩子的序号,而parent为该节点的父节点的序号。
3.数据的运算
开始(1).程序流程图
开始
输入数字0-2
原创力文档

文档评论(0)