/*lzw就是通过建立一个字符串表,用较短的代码来表示较长的字符串来实现压缩*/

#include

#include

#include

#include//用来计算压缩的时间

using namespace std;

//定义常数

const int max = 1000003;//最大code数,是一个素数,求模是速度比较快

const int ascii = 256;  //ascii代码的数量

const int bytesize = 8; //8个字节

struct element//hash表中的元素

{

int key;

int code;

element *next;

}*table[max];//hash表

int hashfunction(int key)//hash函数

{

return key%max;

}

void hashinit(void)//hash表初始化

{

memset(table,0,sizeof(table));

}

void hashinsert(element element)//hash表的插入

{

int k = hashfunction(element.key);

if(table[k]!=null)

{

element *e=table[k];

while(e->next!=null)

{

e=e->next;

}

e->next=new element;

e=e->next;

e->key = element.key;

e->code = element.code;

e->next = null;

}

else

{

table[k]=new element;

table[k]->key = element.key;

table[k]->code = element.code;

table[k]->next = null;

}

}

bool hashfind(int key,element &element)//hash表的查找

{

int k = hashfunction(key);

if(table[k]!=null)

{

element *e=table[k];

while(e!=null)

{

if(e->key == key)

{

element.key = e->key;

element.code = e->code;

return true;

}

e=e->next;

}

return false;

}

else

{

return false;

}

}

void compress(void)//压缩程序

{

//打开一个流供写入

file *fp;

fp = fopen("result.dat", "wb");

element element;

int used;

char c;

int pcode, k;

for(int i=0;i

{

element.key = i;

element.code = i;

hashinsert(element);

}

used = ascii;

c = getchar();

pcode = c;

while((c = getchar()) != eof)

{

k = (pcode << bytesize) + c;

if(hashfind(k, element))

pcode = element.code;

else

{

//cout<

fwrite(&pcode, sizeof(pcode), 1, fp);

element.code = used++;

element.key = (pcode << bytesize) | c;

hashinsert(element);

pcode = c;

}

}

//cout<

fwrite(&pcode, sizeof(pcode), 1, fp);

}

int main(void)

{

int t1,t2;

//欲压缩的文本文件

char xx[100]={0};

printf("请输入要压缩的文件:");

gets(xx);

freopen(xx,"r",stdin);

t1=time(null);

hashinit();

compress();

t2=time(null);

cout<

cout<

}

怎样将英文html文件转换成中文,如何在html文件中修改文本中的英文文字为中文?源代码识别不了...相关推荐

  1. Linux把日志文件转换成xml,[转载]将 HTML 文件转换成 XML

    在 Java 专家 Michael Geisler 为 Builder 澳大利亚写的第一篇文章中,他向读者展示了如何使用 JTidy 将 HTML 文件转换成 XML. 有关 Java 的最重要的事情 ...

  2. 如何将高版本的cad文件转换成低版本的cad文件

    高版本的CAD如果直接保存,低版本的CAD就出现这样的不兼容问题而打不开.鉴于CAD工程图纸需要频繁的交流,这样十分不利于高效作图与工程图纸的沟通,但自己不想安装高版本的CAD,怎样才能快速.便捷地阅 ...

  3. 如何利用ArcGIS将shp文件转换成CAD可用的dwg文件

    对于使用CAD的用户而言,*.shp格式的文件不能够直接加载使用,那么现在小编就教大家如何利用ArcGIS将水经注谷歌地球高程下载器生成的*.shp转换成CAD可编辑的*.dwg文件,希望对大家有所帮 ...

  4. bin文件转换成html,怎么样把BIN文件转换成ISO文件

    ISO文件:就是以iso为扩展名的文件,它是iso9660文件格式,一种光盘(CD)上的文件系统格式.简单地说,就是数据在数据光盘上的组织形式: 它的特点是: 1)最多只包含8级子目录(可以用Rock ...

  5. 【PDF转换图片】如何把pdf文件转换成图片?如何把批量pdf文件转换成图片?如何把多目录批量pdf文件转换成图片?如何pdf文件转换成图片不失真不损失清晰度?今天教方法

    在工作中常常需要将PDF转换为图片,好多免费但是图片有水印和功能不全的问题. 还有市面上很多软件知识完成了部分的工作,比如只能单个文件转PDF,那么遇到多文件的就只能挨个转么? 还有转换的格式支持的非 ...

  6. linux ppk文件,如何使用远程linux系统中ssh秘钥文件转换成putty可以使用的ppk文件...

    使用OpenSSH生成密钥密钥既可使用putty生成,也可用OpenSSH生成.1.Linux下生成密钥运行: 引用 # ssh-keygen -t rsa Generating public/pri ...

  7. 文件格式用Latex排版论文(1)如何将Visio画图文件转换成Latex支持的.eps文件

    本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~ 写论文的时候经常应用Visio来绘图,然而用Latex排版论文的话,只能插入.eps格式的图片文件.这篇文章举个简单例子,说明 ...

  8. csv文件转换成html,jQuery 把CSV文件数据转换为HTML表格(Bootstrap Table)

    JavaScript 语言: JaveScriptBabelCoffeeScript 确定 "use strict"; (function defineVarsFromClassN ...

  9. 将mp3文件转换成单通道16K wav文件

    ffmpeg -i 01.mp3 -acodec pcm_s16le -ac 1 -ar 16000 1.wav

  10. 将jar文件转换成exe可执行文件

    将jar文件转换成exe可执行文件: exe文件使用方便,而且还可以提高源码及资源的安全性,但同时也失去了java的初衷--跨平台性. 如果你坚持要转换成exe文件,请按以下方式进行: 利用exe4j ...

最新文章

  1. Word2013、2016中页码总页数设置为当前节总页数
  2. CSS定位布局display/float/position属性之间的关系/区别和如何使用取值行为机制
  3. [全文索引]非索引字表
  4. android中判断sim卡状态和读取联系人资料的方法
  5. jdk8新特性(接口新特性、lambda表达式、方法引用、函数式接口、Stream流)和单例设计模式
  6. java中字节码_Java字节码浅析(—)
  7. mysql 6.2 安装教程_CentOS 6.2 安装 MySQL 5.7.28的教程(mysql 笔记)
  8. 百度网盘 不限速下载文件
  9. spring 实现小程序抖音去水印后台
  10. 毕业论文 一级标题段前段后问题
  11. chromium代码结构
  12. 拭目以待 英国女将谢洛克或将谱写飞镖传奇
  13. glog logging library for C++
  14. 比ping更强大的fping
  15. 点击按钮获取listview网上数据
  16. 市场调研-全球与中国在线软件文档工具市场现状及未来发展趋势
  17. Coding and Paper Letter(六十)
  18. 汽车计算机英语,架图你的行车电脑变成英文了怎么办??????
  19. App测试中Android和IOS测试区别
  20. ZZ关于椭圆标准方程转参数方程

热门文章

  1. 微信小程序(引入Iconfont 阿里巴巴矢量图标库 )
  2. HTML5 界面元素 Canvas 参考手册
  3. ImgBurn - 简单免费的 CD/DVD 刻录软件
  4. linux 服务 优先级,设置Linux自启服务以及优先级
  5. 激光打标程序 c语言,激光打标机 - 20160516labview - 源码下载|Windows编程|其他小程序|源代码 - 源码中国...
  6. 文档被administrator锁定怎么解除
  7. Win2008系统下装CTBS之前的系统组件安装向导第二篇(补充篇)
  8. Idea如何设置Tomcat热部署
  9. Easy RM to MP3 Converter漏洞分析报告
  10. 详解推荐系统的算法与应用