%% ---------------------------------------------
% code by WangYuan
% date 2019/05/11
%----------------------------------------------------
%%
function [ m3,e ] =Huffman_try(p)
% 函数输入p,p为概率分布,此函数功能是进行哈夫曼编码
% 函数输出h,h为各个元素的编码
% 函数输出e,e为输出的平均码长,还没写好,就随便初始化了一下
e=2;
if length(find(p<0))
error('概率不应该小于0!')
end
if abs(sum(p)-1)>10e-10
error('概率之和大于1,请检查输入!')
end
%% 生成霍夫曼树
n=length(p);
q=ones(1,(2*n-1))
q(1,1:n)=p;
%定义存放(2*n-1)个结点的结构体,将索引子结点和父结点全部初始化为-1,将故障s1-sn的概率赋给前n个结点。
for i=1:(2*n-1)
Htree(i).lchild=-1;
Htree(i).rchild=-1;
Htree(i).parent=-1;
end
for i=1:n
Htree(i).weight=p(i);
end
m1=0;
m2=0;
for i=(n+1):(2*n-1)
[min1,m1]
matlab 霍夫曼树的生成与霍夫曼编码
最新推荐文章于 2023-05-24 22:34:32 发布
本文介绍了如何在MATLAB中生成霍夫曼树并进行霍夫曼编码。通过主程序的运行,展示了具体的实现过程和结果。
摘要由CSDN通过智能技术生成