版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实用标准文案《用哈夫曼编码实现文件压缩》实 验 报 告课程名称 数据结构B实验学期 2012 至2013 学年 第 一 学期学生所在系部 计算机学院年级 2011 专业班级 信管B11-2学生姓名 学号精彩文档实用标准文案任课教师 兰芸实验成绩精彩文档实用标准文案一、实验题目:用哈夫曼编码实现文件压缩二、实验目的:1、了解文件的概念。2、掌握线性链表的插入、删除等算法。3、掌握Huffman 树的概念及构造方法。4、掌握二叉树的存储结构及遍历算法。5、利用Huffman 树及Huffman 编码,掌握实现文件压缩的一般原理。三、实验设备与环境:微型计算机、Windows 系列操作系统 、VisualC++6.0 软件四、实验内容:输入一些字符,即赫夫曼树结点的权值,创建 Haffman 树,再将各字符对应的哈夫曼编码写入文件中。五、概要设计:1)构造Hufffman树—Hufffman算法2)Huffman编码:数据通信用的二进制编码编码:根据字符出现频率构造 Huffman 树,然后将树中结点引向其左孩子的分支标“0”,引向其右孩子的分支标“ 1”;每个字符的编码即为从根到每个叶子的路径上得到的 0、1序列。3)二叉树的存储结构typedefstructnode{datatypedata;精彩文档实用标准文案structnode*lchild,*rchild;}BinTree;六、详细设计:1、构造Huffman 树步骤:Ⅰ、根据给定的 n个权值{w1,w2,⋯⋯wn},构造n棵只有根结点的二叉树,令起权值为wj。Ⅱ、在森林中选取两棵根结点权值最小的树作左右子树,构造一棵新的二叉树,置新二叉树根结点权值为其左右子树根结点权值之和。Ⅲ、在森林中删除这两棵树,同时将新得到的二叉树加入森林中。Ⅳ、重复上述两步,直到只含一棵树为止,这棵树即哈夫曼树。2、利用Select函数选出权值最小的两个结点。3、利用CreatHT函数构的建赫夫曼树先将所有的叶子结点的父结点和左右孩子结点均赋值为 0,并将输入的权值依次赋给叶子结点的 weight 域。从树的最底部开始循环 Select函数共n-1次,将最小权的结点赋给中间结点的左孩子,将次小权的结点赋给中间结点的右孩子。4、从叶子到根逆向求每个字符的赫夫曼编码,开辟字符串空间,从叶子结点开始逆向寻找每个中间结点的左右孩子,开辟字符空间为左孩子赋值为字符 0,为右孩子赋值为字符 1,运用strcpy 函数将所得字符依次从右到左连接于所开辟的字符串空间,所得字符串即为赫夫曼编码。#include<stdio.h>#include<string.h>精彩文档实用标准文案#include<stdlib.h>#include<conio.h>#include<time.h>structnode{longweight;//权值unsignedcharch;//字符intparent,lchild,rchild;charcode[256];//编码的位数最多为256位intCodeLength;//编码长度}hfmnode[512];voidcompress();//主函数voidmain(){intchoice;printf("欢迎使用赫夫曼编码压缩文件!请选择 1 or 2:\n");printf("1. 压缩文件\n");printf("2. 退出!\n");scanf("%d",&choice);if(choice==1)compress();精彩文档实用标准文案elseif(choice==2)return;elseprintf(" 输入错误!");}压缩函数voidcompress(){inti,j;charinfile[20],outfile[20];FILE *ifp,*ofp;unsignedcharc;//longFileLength,filelength=0;intn,m;// 叶子数和结点数ints1,s2;// 权值最小的两个结点的标号charcodes[256];longsumlength=0;floatrate,speed;intcount=0;clock_tstart1,start2,finish1,finish2;double duration1,duration2;voide
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度智能安防系统销售与回购合同范本4篇
- 2025年度高新技术企业拆迁厂房评估及补偿协议4篇
- 2025年度旅游目的地策划开发合同4篇
- 2025年度航空航天器维修技术培训与服务合同范本4篇
- 2025年度厂房电气系统升级改造合同范本4篇
- 2024新版二手房定金支付合同样本版
- 二零二五年度新材料研发承包生产合同3篇
- 二零二四属公积金贷款合同签订后的贷后审计与合规性检查3篇
- 2024预定房屋买卖协议书
- 个人农田租赁承包协议:2024年标准范本一
- 2024-2030年中国通航飞行服务站(FSS)行业发展模式规划分析报告
- 机械制造企业风险分级管控手册
- 地系梁工程施工方案
- 藏文基础-教你轻轻松松学藏语(西藏大学)知到智慧树章节答案
- 2024电子商务平台用户隐私保护协议3篇
- 安徽省芜湖市2023-2024学年高一上学期期末考试 英语 含答案
- 电力工程施工安全风险评估与防控
- 医学教程 常见体表肿瘤与肿块课件
- 内分泌系统异常与虚劳病关系
- 智联招聘在线测评题
- DB3418T 008-2019 宣纸润墨性感官评判方法
评论
0/150
提交评论