资源简介
根据香农编码,费诺编码和哈夫曼编码的最佳编码思想,运用C语言或Matlab语言任选2个给予分别实现,其中哈夫曼编码必选.
基本要求(15):
1.输入任意个数的信源符号
2.输入任意大小的概率分布(ΣPi=1)
3.哈夫曼编码给出方式选择
4. 输出编码结果
5.输出信源熵,平均码长,编码效率等
6.编程加注解
附加要求(5):
1.能实现哈夫曼多进制(元)编码(3进制)
或 2.能实现哈夫曼多重(扩展)编码(2重,信源2-3个符号)
代码片段和文件信息
#include
#include
#define MaxSize 100
typedef char ElemType;
typedef struct
{
ElemType data[MaxSize];
double weight; /*叶子权重,信源概率*/
int parent; /*父亲节点*/
int lchild; /*左孩子节点*/
int rchild; /*右孩子节点*/
} HTNode;
typedef struct
{
char cd[MaxSize]; /*存放编码用*/
int start;
} HCode;
void CreateHT(HTNode ht[]int n) /*构造哈夫曼树子程序*/
{
int ijk;
int lnodernode; /*节点*/
double min1min2;
for(i=0;i<2*n-1;i++) /*进行2*n-1次合并*/
ht[i].parent=ht[i].lchild=ht[i].rchild=-1;
for(i=n;i<2*n-1;i++)
{
min1=min2=32767;
lnode=rnode=-1;
for(k=0;k<=i-1;k++)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3914 2008-12-15 18:13 郑旅军 0656061 哈夫曼编码完成版\huffman.c
文件 213093 2008-12-15 18:50 郑旅军 0656061 哈夫曼编码完成版\huffman.exe
文件 9488 2008-12-15 18:50 郑旅军 0656061 哈夫曼编码完成版\huffman.obj
文件 2679 2008-12-13 20:23 郑旅军 0656061 香农编码完成版\xn.c
文件 217182 2008-12-15 18:46 郑旅军 0656061 香农编码完成版\xn.exe
文件 8935 2008-12-15 18:46 郑旅军 0656061 香农编码完成版\xn.obj
目录 0 2008-12-15 18:51 郑旅军 0656061 哈夫曼编码完成版
目录 0 2008-12-15 18:50 郑旅军 0656061 香农编码完成版
文件 159232 2008-12-15 18:42 信息论与编码课程期中作业报告.doc
----------- --------- ---------- ----- ----
614523 9
- 上一篇:c++酒店点菜系统
- 下一篇:C语言 Basler相机开发包
相关资源
- 获取linux内核核心信息(shell脚本)
- linux下获取CPU内存使用信息,网络流量
- C++实战源码-禁止列表框信息重复
- C++实战源码-以树状结构显示城市信息
- C++实战源码-以报表显示图书信息
- C++实战源码-带历史信息的菜单
- C++实战源码-获取路径点信息
- C++实战源码-利用Disassembly窗口查看汇
- C++实战源码-利用Watch调试窗口查看对
- C++ 使用RAISERROR语句返回错误信息
- C++ 使用INSERT触发器向员工表中添加员
- 依据BT种子信息批量修改所文件的文件
- 信息学奥赛考试大纲
- C++实战源码-按树结构输出区域信息
- C++实战源码-利用Variables窗口查看变量
- C++实战源码-利用Memory窗口查看内存信
- C++ 获取处理器信息
- C++ 获取磁盘空间信息
- C++ 获取INI文件中记录的数据库配置信
-
C++ 将部门结构信息插入xm
l文件中 - C++ 使用DELETE触发器删除离职员工信息
- c语言学生信息系统.zip
- opencv计算信息熵(c++代码)
- 哈夫曼编码(c++实现)
- 员工信息管理系统Qt+SQLite源码
- QT客户信息管理系统源码.rar
- c++ 进程查看工具 能查看 所有进程句
- c++ ipconfig源码(获取ip/dns/网关等信息
- ffmpeg获取RTSP视频流信息
- 学生信息管理系统c++
评论
共有 条评论