- 3
- 0
- 约9.87千字
- 约 9页
- 2017-06-04 发布于河南
- 举报
hufuman 编码
/***************************************************/???
/*????项目名称:霍夫曼编码算法?????*/???
?????????????????????????????????????
/***************************************************/???
#include?iostream.h? ??
#include?vector? ??
#include?string? ??
#include?stdlib.h? ??
???
using?namespace?std;???
???
???
//存储霍夫曼树节点的数据结构? ??
typedef?struct?treenode???
{???
????char?data;????????????????????//存储要编码的字符? ??
????int?weight;???????????????????//存储要编码的字符的权重? ??
????struct?treenode*?parent;????//父节点? ??
????struct?treenode*?lchild;????//左子树? ??
????struct?treenode*?rchild;????//右子树? ??
}TreeNode;???
???
//存储霍夫曼码表单元的数据结构? ??
typedef?struct?nodecode???
{???
????char?node;?????//存储要编码的字符? ??
????string?huffmancode;//存储相应字符的霍夫曼码? ??
}Nodecode;???
???
//定义全局变量? ??
?static?int?N;??//记录文件中出现的字符总数? ??
?static?nodecode?s[30];//计算出的霍夫曼码表? ??
?static?int?index=0;????
/*******************************************************************/???
/*函数功能:获得字符cc在文件中出现的次重,以此作为权重??
/******************************************************************/???
int?GetCount(FILE*?fp,char?cc)???
{???
????int?i=1;???
????while(!feof(fp))???
????{???
????????if(cc==fgetc(fp))???
????????????i++;???
????}???
????rewind(fp);???
????return?i;???
}???
/******************************************************************************/???
//函数功能:判断vector中是否已存在指定字符为cc的treenode? ??
/******************************************************************************/???
int?IsExit(vectorTreeNode*?vec,char?cc)???
{???
????for(int?i=0;ivec.size();i++)???
????{???
????????if(cc==vec[i]-data)???
????????????return?1;???
????}???
????return?0;???
}???
/******************************************************************************/???
//函数功能:从vector中选择权重最小的两个节点lnode,? ??
//?????????rnode,并将其从vector中移除? ??
/******************************************************************************/???
vectorTreeNode*?Select(vectorTreeNode*?vec,TreeNode**?lnode,TreeNode**?rnode)???
{???
????int?temp=vec[0]-weight;???
????vectorTreeNode*::iterator?i
您可能关注的文档
- CMU MFE 在读生解析美国金融工程硕士名校.doc
- CMOS图像传感器的技巧演进与调试.doc
- CNA培训讲义.ppt
- CO检测装配在褐煤掺烧中的应用.doc
- coreldraw技能.doc
- CSS基础详解-6+高级选择器和层叠.pdf
- CSS基础详解-1+CSS概述.pdf
- C措辞模拟测试题1.doc
- C模块编程范例.doc
- CSS学习笔记-jh.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)