#include "LZW.h"
void LZW::init() {
for (int i = 0; i < 256; i++) {
char c[2] = {(char) i, '\0'};
m[c] = i;
}
}
void LZW::runLZW() {
cout << "Please enter a string:";
long beginT = clock();
cin >> str;
cout<<"Resulting code"<<endl;
init();
encode();
long endT = clock();
long costT = endT - beginT;
cout<<"Dictionary: "<<endl;
displayDic();
cout<<"Time costs: "<<costT<<" ms"<<endl;
}
void LZW::encode() {
for (int i = 0; i < str.size(); i++) {
c = str[i];
ts = p + c;
if (m.find(ts) != m.end()) {
p = ts;
} else {
int w = m[p];
cout << w << " ";
m.insert(pair<string, int>(ts, index++));
p = c;
}
}
int w = m[p];
cout << w << " ";
cout << endl;
}
void LZW::displayDic() {
map<string, int>::iterator it = m.begin();
for (; it != m.end(); it++) {
if (it->second > 255)
cout << it->first << "\t" << it->second <<endl;
}
}
LZW.zip_C++_fourthstv_interest3dn_lzw_编码
版权申诉
51 浏览量
2022-09-21
01:03:13
上传
评论
收藏 1KB ZIP 举报
alvarocfc
- 粉丝: 105
- 资源: 1万+
最新资源
- Qt开发知识、经验总结 包括Qss,数据库,Excel,Model/View等
- IV数据.xlsx
- foldcraftlauncher_262944.apk
- 珍藏多年的基于matlab实现潮流计算程序源代码集合,包含多个潮流计算程序.rar
- 使用FPGA实现串-并型乘法器
- 基于matlab实现针对基于双曲线定位的DV-Hop算法中误差误差出一种基于加权双曲线定位的DV-Hop改进算法.rar
- 基于matlab实现由遗传算法开发的整数规划,车辆调度问题.rar
- 电视家7.0(对电视配置要求高).apk
- 免费计算机毕业设计-基于JavaEE的医院病历管理系统设计与实现(包含论文+源码)
- 手机端 我的世界融合植物大战僵尸版.apk
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈