1 / 24
文档名称:

哈夫曼树编码实验报告.docx

格式:docx   大小:90KB   页数:24页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

哈夫曼树编码实验报告.docx

上传人:suijiazhuang2 2022/4/13 文件大小:90 KB

下载得到文件列表

哈夫曼树编码实验报告.docx

文档介绍

文档介绍:精品资料,欢迎大家下载!
以上资料仅供参考,如有侵权,留言删除!
数据结构课程设计
报告
题目:一哈夫曼编码/译码学院数学与信息科学学院学科门类na专业数学类学号2021433033姓名田娟
2021年12月30日一、需求分析nNode//哈夫曼树的一个结点(
intweight;
intparent;
intlchild,rchild;
charsourcecode;
std::stringcode;};classHuffmanTree//哈夫曼树(private:
HuffmanNode*Node;//Node[]存放哈夫曼树intLeafNum;:
HuffmanTree();
~HuffmanTree();
voidCreateHuffmanTree();
voidCreateHuffmanTreeFromKeyboard();
voidCreateHuffmanTreeFromFile();
voidEncoder();
voidDecoder();
voidPrintCodeFile();
voidPrintHuffmanTree();
voidPrintHuffmanTree_aoru(intT,intlayer=1);};//构造函数//函数功能:初始化哈夫曼树HuffmanTree::HuffmanTree(){
精品资料,欢迎大家下载!
以上资料仅供参考,如有侵权,留言删除!
Node=NULL;
LeafNum=0;}//函数功能:将哈夫曼的数组的空间释放〃参数返回值:无HuffmanTree::~HuffmanTree()(
delete[]Node;}//建立哈夫曼树函数//函数功能:建立哈夫曼树voidHuffmanTree::CreateHuffmanTree()(
charChoose;
cout<<"从键盘输入哈夫曼树(按2)?";
cin>>Choose;
if(Choose=='2'){
CreateHuffmanTreeFromKeyboard();
}//choose=='2'
else{〃
CreateHuffmanTreeFromFile();
}}//函数功能:从键盘建立哈夫曼树voidHuffmanTree::CreateHuffmanTreeFromKeyboard(){
intNum;cout<<"\n请输入源码字符集个数:
H.
精品资料,欢迎大家下载!
以上资料仅供参考,如有侵权,留言删除!
cin>>Num;
if(Num<=1)(
cout<<"无法建立少丁2个叶子结点的哈夫曼树.\n\n";
return;
}
LeafNum=Num;
Node=newHuffmanNode[2*Num-1];
for(inti=0;i<Num;i++){//读入哈夫曼树的叶子结点信息
cout<<"请输入第"<<i+1<<"个字符值";
getchar();
Node[i].sourcecode=getchar();//源文的字符存入字符数组Info[]
getchar();
cout<<"请输入该字符的权值";
cin>>Node[i].weight;//源文的字符权重存入Node[].weight
Node[i].parent=-1;
Node[i].lchild=-1;
Node[i].rchild=-1;
Node[i].code="\0";
}for(intj=Num;j<2*Num-1;j++){//循环建立哈夫曼树内部结点
intpos1,pos2;
intmax1,max2;
pos2=pos1=j;
max2=max1=numeric_limits<int>::max();
精品资料,欢迎大家下载!
以上资料仅供参考,如有侵权,留言删除!
〃在所有子树的根结点中,选权重最小的两个根结点,pos1最后应指向权重最小的根结点的下标for(intk=j-1;k>=0;k--){
if(Node[k].parent==-1){//如果是某棵子树的根结点
if(Node[k].weight<max1){//发现比当前最大值还大的权重max2=max1;max1=Node[k].weight;pos2=pos1;pos1=k;
}
elseif(Node[k].weight<max2){//发现比当前次大值还大的次大权重max2=Node[k].weight;pos2=k;}
}//if(Node[j].parent==-1)
}//for〃

最近更新

2025年哈尔滨电力职业技术学院单招职业倾向性.. 62页

2025年知识竞赛活动方案六篇 15页

2025年初中学业水平考试物理模拟试题+解析答案.. 8页

酰化反应制备丁酸酐的动力学研究 3页

2025年睡前最暖心的话3篇 7页

配电网自适应电流保护的研究 3页

2025年唐山幼儿师范高等专科学校单招职业技能.. 63页

部分回转电动装置的机械限位与花键接头结构分.. 3页

2025年真诚的早安心语朋友圈47条 5页

2025年唐山科技职业技术学院单招职业倾向性测.. 61页

2025年唐山职业技术学院单招职业技能测试题库.. 61页

企业就业实习合同样本 5页

通过振动和噪声分析对机器进行早期故障识别 3页

2025年嘉兴南湖学院单招职业技能测试题库(研.. 62页

2025年嘉兴职业技术学院单招职业适应性测试题.. 61页

远红外技术在中温电阻炉上的应用 3页

近十五年铟的分析方法综述 3页

运行绝缘子静态应力仿真研究 3页

2025年的除夕夜祝福语 3页

(苏教版)牛津小学英语五年级下册课件unit6ppt.. 20页

2025年四川华新现代职业学院单招职业倾向性测.. 61页

数字媒体艺术史 48页

2025年四川卫生康复职业学院单招职业倾向性测.. 61页

输变电设备带电检测技术研究 3页

2025年牡丹江大学单招职业技能测试题库有完整.. 61页

2025年海南省海口市高考模拟(二)物理高频考点.. 5页

违纪违法典型案例对照剖析材料 5页

医院组织生活会批评与自我批评集合6篇 20页

软件开发工程师面试题(基础知识) 5页

水彩画技法与赏析演示文稿 219页