- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 树和二叉树( Tree Binary Tree ) 回顾1——二叉树的存储 顺序、二叉链表、三叉链表、静态链表 回顾2——最小值问题 提前介绍:二叉树的应用 5.5 Huffman树及其应用 Huffman树简介: 构造哈夫曼树的基本思想: 构造Huffman树的步骤: 操作要点2:按左0右1对Huffman树的所有分支编号! 例2:假设用于通信的电文仅由8个字母 {a, b, c, d, e, f, g, h} 构成,它们在电文中出现的概率分别为{ 0.07, 0.19, 0.02, 0.06, 0.32, 0.03, 0.21, 0.10},试为这8个字母设计哈夫曼编码。如果用0~7的二进制编码方案又如何? 为清晰起见,重新排序为:w={2, 3, 6, 7, 10, 19, 21, 32} 对应的哈夫曼编码(左0右1): 例3:设字符集为26个英文字母,其出现频度如下表。 Huffman树的类定义(见教材) #include heap.h const int DefaultSize = 20; //缺省权值集合大小 template class E struct HuffmanNode { //三叉链表结点类 E weight; //结点权重 HuffmanNodeE *parent; // 父结点指针 HuffmanNodeE *leftChild, *rightChild; //左、右子女结点指针 HuffmanNode () : Parent(NULL), leftChild(NULL), rightChild(NULL) { } //构造函数 …… }; // HuffmanNode template class E class HuffmanTree { //Huffman树类定义 public: HuffmanTree (E w[], int n); //构造函数 ~HuffmanTree() { delete Tree(root);} //析构函数 void HuffmanCode(char **code) ; // Huffman编码 protected: HuffmanNodeE *root; //树的根 void deleteTree (HuffmanNodeE *t); //删除树 t void mergeTree (HuffmanNodeE ht1, HuffmanNodeE ht2, HuffmanNodeE * parent); //合并 }; 采用静态链表的Huffman树?? 采用静态链表方式存储Huffman树,其类定义如下: const int n = 20; //叶结点个数 const int m = 2*n-1; //结点总数 struct HTNode{ char data; //结点数据,可省 float weight; int parent, lchild, rchild; }; typedef HTNode HuffmanTree[m]; Huffman树建立算法 建立Huffman树的算法 void CreateHuffmanTree (HuffmanTree T, float fr[ ], int n) { Huffman编码算法 void HuffmanCode (HuffmanTree T, char **code,int n) { // 根据Huffman树产生Huffman编码算法 code=new *char[n]; //申请字符串指针组 char *p=new char[n];p[n-1]=‘\0’; //临时存放编码 for (int i = 0; i n; i++) { //确定第n个字符的编码 int k=n-1; for(int j=i; T[j].parent =0; j=T[j].parent){ f= T[j].parent; if(T[f].lchild==j) p[--k]= ‘0’ ;//为左孩子
您可能关注的文档
- BCB+MySQL课件.ppt
- BDE与DELPHI错误表.doc
- Beini抓取握手包&导出握手包到破解成功图文解析.doc
- BigBulbs_用户登录模块测试方案_v1.0知识.pdf
- Bing Map学习系列教材.docx
- 第5讲 Word 2010演示文稿.pptx
- BIOS及主板故障.doc
- BIOS设置和优化教程.pdf
- bios设置与硬件检测.doc
- BIOS选项的功能和设置.ppt
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
最近下载
- 绿色金融改革创新试点政策对企业经营绩效的影响研究.pdf VIP
- 赣州市南康区赞贤小学开展“扣好人生第一粒扣子——我爱我的祖国主题演讲比赛活动方案.doc
- 个人医保承诺书模板.docx VIP
- 绿色金融改革创新试点政策对企业绿色创新的影响-来源:创新与创业教育(第2022002期)-中南大学.pdf VIP
- 信息技术环境下的数学教学设计结题报告.doc VIP
- 国金证券:新型消费研究系列-便利店-小业态大生意-打造便利生活.pdf
- HIKARI富山奇立铺布机使用说明书.doc
- 部编版语文四年级上册第七单元大单元教学设计核心素养目标.pdf VIP
- 三级助理舞台灯光师题库考点(三).docx VIP
- (格式已排好)国家开放大学电大《计算机应用基础(专)》终结性考试大作业答案任务一.doc
文档评论(0)