哈夫曼编码算法例题
哈夫曼编码的matlab程序,求注释!!谢谢了
里面有一段看了几个小时都看不懂 哈夫曼编码的MATLAB实现(基于0、1编码):clc;clear;A=[0.4,0.2,0.15,0.1,0.1,0.05];%原概率序列 A=A\/sum(A);A=fliplr(sort(A));%按降序排列 T=A;[m,n]=size(A);B=zeros(n,n-1);%空的编码表(矩阵)for i=1:n B(i,1)=T(i);...
...试构造huffman树,并求出每个叶子结点的哈夫曼编码
我自己用ppt给你做了个演示。Huffman编码的基本规则你肯定懂的,我就简略了。现在规定树枝的左侧都为1,右侧都为0 可以构造Huffman树如下:按顺序从根节点到叶子知:4对应的Huffman编码为:11111 6的为:11110 8的为:1110 20的为:110 35的为:10 10的为:011 15的为:010 23的为:00 ...
哈夫曼编码的算法是怎样?
哈夫曼编码的算法就是把两个最小的概率相加。哈夫曼编码,又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码。算法:先按出现的概率大小排队,...
哈夫曼编码码长怎么算
设某信源产生有五种符号u1、u2、u3、u4和u5,对应概率P1=0.4,P2=0.1,P3=P4=0.2,P5=0.1。霍夫曼编码是变长编码,思路:对概率大的编的码字短,概率小的编的码字长,这样一来所编的总码长就小,这样编码效率就高。上面那样求是不对的,除非你这6个码字是等概率的,各占1\/6。应该用...
现有8个待编码的符号m0,...m7,它们的概率分别为:0.4,0.2,0.15,0.10...
现有8个待编码的符号m0,...m7,它们的概率分别为:0.4,0.2,0.15,0.10,0.07,0.04,0.03,0.01。使用霍夫曼编码算法求出这8个符号所分配的代码。~求过程,谢谢... 现有8个待编码的符号m0,...m7,它们的概率分别为:0.4,0.2,0.15,0.10,0.07,0.04,0.03,0.01。使用霍夫曼编码算法求出这8个符号所分配的代码。~求过...
...中出现的频率分别是7,19,2,6,32,3,21,10写出哈夫曼编码
\/\/ ---算法6.12--- void HuffmanCoding(HuffmanTree &HT,HuffmanCode &HC,int *w,int n){ \/\/ w存放n个字符的权值(均>0),构造赫夫曼树HT,并求出n个字符的赫夫曼编码HC int m,i,s1,s2,start;unsigned c,f;HuffmanTree p;char *cd;if(n<=1)return;m=2*n-1;HT=(HuffmanTree)mal...
用c语言完成:1.哈夫曼编码\/译码器2.内部排序算法的性能分析
1.哈夫曼编码\/译码器【问题描述】设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。【基本要求】(1)初始化:键盘输入字符集大小n、n个字符和n个... 1.哈夫曼编码\/译码器【问题描述】 设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。【...
哈夫曼树及哈夫曼编码的C程序实现(数据结构题)
\/\/ 算法6.13 \/\/ w存放n个字符的权值(均>0),构造哈夫曼树HT,\/\/ 并求出n个字符的哈夫曼编码HC int i, j;char *cd;int p;int cdlen;if (n<=1) return;m = 2 * n - 1;HT = (HuffmanTree)malloc((m+1) * sizeof(HTNode)); \/\/ 0号单元未用 for (i=1; i<=n; i++...
哈夫曼编码算法的实现
<<" ∣ I---创建哈夫曼树 ∣\\n"<<" ∣ ∣\\n"<<" ∣ E---文件编码 ∣\\n"<<" ∣ ∣\\n"<<" ∣ D---文件译码 ∣\\n"<<" ∣ ∣\\n"<<" ∣ P---打印代码文件 ∣\\n"<<" ∣ ∣\\n"<<" ∣ T---印哈夫曼树 ∣\\n"<<" ∣ ∣\\n"<<" ∣ O---哈夫曼树的存储结构...
哈夫曼编码 数据结构算法
for (i=0;i<n;i++) \/*根据哈夫曼树求哈夫曼编码*\/ { hc.start=n;c=i;f=ht[i].parent;while (f!=-1) \/*循序直到树根结点*\/ { if (ht[f].lchild==c) \/*处理左孩子结点*\/ hc.cd[hc.start--]='0';else \/*处理右孩子结点*\/ hc.cd[hc.start--]='1';c=f;f=ht[...
茂县超肽回答:[答案] 哈夫曼算法就是找到一个最优二叉树,使得其权值和最小.先将a b c d e的概率乘以100得12,4,15,8,25.将这几个数按从小到大的顺序排列一下,4,8,12,15,25.4+8=12,添加到这个序列里,将原来的4,8划去.12+12=24,添加到序列里,将原来的12,12划...
彩看19295332370问: 一道数据结构题目:哈弗曼算法求解描述求解最优前缀码(平均码长最小)问题的哈夫曼(Huffman)算法的基本思想.并对以下实例,给出其哈夫曼编码及求... - ?
茂县超肽回答:[答案] 运行过了没有任何问题,有什么问题可以交流下. #include #include #define N 6 typedef struct { int W,P,R,L; }HTNode; typedef struct { char ch; char code[10]; }HTCode; HTCode HC[27]; void select(HTNode HT[],int *min1,int *min2,int *a,int *b) { int i;int ...
彩看19295332370问: 哈夫曼编码算法在哈夫曼编码中,若编码长度只允许小于等于4,则除了两个字符已编码为0和10外,还可以最多对()个编码?A)4 B)5 C)6 D)7 - ?
茂县超肽回答:[答案] 因为其中一个不能是另一个的前缀 所以只能是1111、1110、1101、1100
彩看19295332370问: 8种字符出现的概率为0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11,设计哈夫曼编码并计算出构造出的哈夫曼编码的带权路径长度WPL. - ?
茂县超肽回答:[答案] 哈夫曼树为:1 |-----0.42 |-----0.19 |-----0.08 |-----0.03|-----0.05|-----0.11|-----0.23|-----0.58 |-----0.29|-----0.29 |-----0.14|-----0.15 |-----0.07|-----0.08这八个字符的编码分别为:(0.05)的编码00...
彩看19295332370问: 已知信息为ABCDBCDCBDBACB,构造哈夫曼树已知信息为ABCDBCDCBDBACB1 请按此信息构造哈夫曼树;2 计算哈夫曼树的加权路径长度WPL3 求出... - ?
茂县超肽回答:[答案] 这2个都对,权值小的在左边在右边没关系,这个没限制,最后算出的带权路径长度最小就可以 33 / 21 12 /
彩看19295332370问: 关于哈夫曼编码的一道题 - ?
茂县超肽回答: 下面是我写的一个程序,希望能满意. #include<iostream> using namespace std;struct htnode {char ch;int weight;int parent;int lchild,rchild; };class huffmantree { public:void code(char str1[],int w[],int n);void uncode(char str1[],char str2[],int ...
彩看19295332370问: 关于哈夫曼编码试题的计算 - ?
茂县超肽回答: 11111 平均码字长度为(0,14,1).18)*2+0太复杂了,4,我选择的是用 普通平均编码长度除上了哈夫曼平均编码长度得出,31,如下,14;00 3——>. 辛苦半天:提交后发现格式不太规整.47 编码效率为[(1-0;2,记得左分支标0.1*4 +(0,右...
彩看19295332370问: huffman编码怎样计算? 最好是有一个实例. - ?
茂县超肽回答: 为了便于说明,我们先进行一些定义. 原始数据:需要被压缩的数据 压缩数据:被压缩过的数据 n:字母表的长度 a〔,j〕:字母表中第j个字符 t:已处理的原始数据中字符的总个数 k:已处理数据中各不相同字符的个数 显然1„j,k„n 在压缩开始...
彩看19295332370问: 数据结构题目,关于哈弗曼编码,用C语言来做(非常急的,谢谢了) - ?
茂县超肽回答: void HuffmanCoding(HuffmanTree &HT, HuffmanCode &HC, int *w, int n) { // w存放n个字符的权值(均>0),构造哈夫曼树HT, // 并求出n个字符的哈夫曼编码HC int i, j, m, s1,s2; char *cd; int p; int cdlen; if (n m = 2 * n - 1; HT = (HuffmanTree)...
彩看19295332370问: 什么是哈夫曼算法 - ?
茂县超肽回答: 题目的阐述: 以n进制编码方式对一个英文字串中的字符进行编码,每个不同的字符其编码不同.使得由新的编码替代原串后总码长最小,且输入0,1,2,...,n-1构成的数字串后,依照该编码方式可以正确的对译出唯一的英文原串. 如: n=3 英文原...