赫夫曼编码译码器设计说明书.docVIP

  • 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)

1亿VIP精品文档

相关文档