亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 1.c

?? 這是一個關于lzss壓縮的C的源代碼
?? C
字號:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

#define N		 4096	
#define F		   18	
#define THRESHOLD	2   
#define NIL			N	

unsigned long int
		textsize = 0,	
		codesize = 0,	
		printcount = 0;	
unsigned char text_buf[N + F - 1];	
int		match_position, match_length, lson[N + 1], rson[N + 257], dad[N + 1];  
FILE	*infile, *outfile;  

void InitTree(void)  
{
	int  i;
    for (i = N + 1; i <= N + 256; i++) rson[i] = NIL;
	for (i = 0; i < N; i++) dad[i] = NIL;
}

void InsertNode(int r)
{
	int  i, p, cmp;
	unsigned char  *key;

	cmp = 1;  key = &text_buf[r];  p = N + 1 + key[0];
	rson[r] = lson[r] = NIL;  match_length = 0;
	for ( ; ; ) {
		if (cmp >= 0) {
			if (rson[p] != NIL) p = rson[p];
			else {  rson[p] = r;  dad[r] = p;  return;  }
		} else {
			if (lson[p] != NIL) p = lson[p];
			else {  lson[p] = r;  dad[r] = p;  return;  }
		}
		for (i = 1; i < F; i++)
			if ((cmp = key[i] - text_buf[p + i]) != 0)  break;
		if (i > match_length) {
			match_position = p;
			if ((match_length = i) >= F)  break;
		}
	}
	dad[r] = dad[p];  lson[r] = lson[p];  rson[r] = rson[p];
	dad[lson[p]] = r;  dad[rson[p]] = r;
	if (rson[dad[p]] == p) rson[dad[p]] = r;
	else                   lson[dad[p]] = r;
	dad[p] = NIL; 
}

void DeleteNode(int p) 
{
	int  q;
	
	if (dad[p] == NIL) return;  
	if (rson[p] == NIL) q = lson[p];
	else if (lson[p] == NIL) q = rson[p];
	else {
		q = lson[p];
		if (rson[q] != NIL) {
			do {  q = rson[q];  } while (rson[q] != NIL);
			rson[dad[q]] = lson[q];  dad[lson[q]] = dad[q];
			lson[q] = lson[p];  dad[lson[p]] = q;
		}
		rson[q] = rson[p];  dad[rson[p]] = q;
	}
	dad[q] = dad[p];
	if (rson[dad[p]] == p) rson[dad[p]] = q;  else lson[dad[p]] = q;
	dad[p] = NIL;
}

void Encode(void)
{
	int  i, c, len, r, s, last_match_length, code_buf_ptr;
	unsigned char  code_buf[17], mask;
	
	InitTree();  
	code_buf[0] = 0;  
	code_buf_ptr = mask = 1;
	s = 0;  r = N - F;
	for (i = s; i < r; i++) text_buf[i] = ' ';  
	for (len = 0; len < F && (c = getc(infile)) != EOF; len++)
		text_buf[r + len] = c; 
	if ((textsize = len) == 0) return;  
	for (i = 1; i <= F; i++) InsertNode(r - i);  
	InsertNode(r);  
	do {
		if (match_length > len) match_length = len;  
		if (match_length <= THRESHOLD) {
			match_length = 1;  
			code_buf[0] |= mask; 
			code_buf[code_buf_ptr++] = text_buf[r]; 
		} else {
			code_buf[code_buf_ptr++] = (unsigned char) match_position;
			code_buf[code_buf_ptr++] = (unsigned char)
				(((match_position >> 4) & 0xf0)
			  | (match_length - (THRESHOLD + 1))); 
		}
		if ((mask <<= 1) == 0) {  
			for (i = 0; i < code_buf_ptr; i++)  
				putc(code_buf[i], outfile);     
			codesize += code_buf_ptr;
			code_buf[0] = 0;  code_buf_ptr = mask = 1;
		}
		last_match_length = match_length;
		for (i = 0; i < last_match_length &&
				(c = getc(infile)) != EOF; i++) {
			DeleteNode(s);		
			text_buf[s] = c;
			if (s < F - 1) text_buf[s + N] = c;  
			s = (s + 1) & (N - 1);  r = (r + 1) & (N - 1);
			InsertNode(r);	
		}
		if ((textsize += i) > printcount) {
			printf("%12ld\r", textsize);  printcount += 1024;
		}
		while (i++ < last_match_length) {	
			DeleteNode(s);					
			s = (s + 1) & (N - 1);  r = (r + 1) & (N - 1);
			if (--len) InsertNode(r);		
		}
	} while (len > 0);
	if (code_buf_ptr > 1) {	
		for (i = 0; i < code_buf_ptr; i++) putc(code_buf[i], outfile);
		codesize += code_buf_ptr;
	}
	printf("In : %ld bytes\n", textsize);	
	printf("Out: %ld bytes\n", codesize);
	printf("Out/In: %.3f\n", (double)codesize / textsize);
}

void Decode(void)
{
	int  i, j, k, r, c;
	unsigned int  flags;
	
	for (i = 0; i < N - F; i++) text_buf[i] = ' ';
	r = N - F;  flags = 0;
	for ( ; ; ) {
		if (((flags >>= 1) & 256) == 0) {
			if ((c = getc(infile)) == EOF) break;
			flags = c | 0xff00;		
		}							
		if (flags & 1) {
			if ((c = getc(infile)) == EOF) break;
			putc(c, outfile);  text_buf[r++] = c;  r &= (N - 1);
		} else {
			if ((i = getc(infile)) == EOF) break;
			if ((j = getc(infile)) == EOF) break;
			i |= ((j & 0xf0) << 4);  j = (j & 0x0f) + THRESHOLD;
			for (k = 0; k <= j; k++) {
				c = text_buf[(i + k) & (N - 1)];
				putc(c, outfile);  text_buf[r++] = c;  r &= (N - 1);
			}
		}
	}
}

int main(int argc, char *argv[])
{
	char  *s;
	
	if (argc != 4) {
		printf("'lzss e file1 file2' encodes file1 into file2.\n"
			   "'lzss d file2 file1' decodes file2 into file1.\n");
		return EXIT_FAILURE;
	}
	if ((s = argv[1], s[1] || strpbrk(s, "DEde") == NULL)
	 || (s = argv[2], (infile  = fopen(s, "rb")) == NULL)
	 || (s = argv[3], (outfile = fopen(s, "wb")) == NULL)) {
		printf("??? %s\n", s);  return EXIT_FAILURE;
	}
	if (toupper(*argv[1]) == 'E') Encode();  else Decode();
	fclose(infile);  fclose(outfile);
	return EXIT_SUCCESS;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲美女一区二区三区| 亚洲狠狠爱一区二区三区| 日韩欧美亚洲一区二区| 国产成人午夜片在线观看高清观看| 国产真实精品久久二三区| 亚洲一区二区不卡免费| 久久九九久精品国产免费直播| 国产精品传媒在线| 日韩精品视频网站| 国产精品毛片无遮挡高清| 亚洲国产精品久久人人爱| 国产美女精品在线| 欧美伊人久久大香线蕉综合69| 久久综合999| 色偷偷88欧美精品久久久| 精品久久久久久久久久久久包黑料 | 麻豆成人综合网| 波多野结衣精品在线| 欧美一级黄色大片| 一区二区三区在线免费视频| 国产精品一区二区视频| 欧美美女激情18p| 99久久亚洲一区二区三区青草| 欧美视频一区二区三区| 成人免费在线播放视频| 精品无码三级在线观看视频| 欧美日韩你懂得| 欧美激情在线观看视频免费| 欧美一区国产二区| 亚洲激情中文1区| 国产麻豆一精品一av一免费| 欧美美女一区二区三区| 亚洲综合免费观看高清完整版在线| 国产成人精品三级麻豆| 欧美va亚洲va香蕉在线 | 欧美系列日韩一区| 17c精品麻豆一区二区免费| 国产一区二区视频在线播放| 日韩视频一区二区三区 | 欧美妇女性影城| 亚洲女与黑人做爰| 波多野结衣中文字幕一区| 中文字幕欧美国产| 成人免费高清视频| 亚洲国产精品成人久久综合一区| 国产精品白丝jk白祙喷水网站| 日韩视频在线永久播放| 日本欧美大码aⅴ在线播放| 色94色欧美sute亚洲13| 亚洲伦理在线免费看| 91蝌蚪porny成人天涯| 日韩毛片视频在线看| 91亚洲精华国产精华精华液| 亚洲色图19p| 日本韩国一区二区三区视频| 一区二区久久久| 欧美在线短视频| 香蕉加勒比综合久久| 538prom精品视频线放| 亚洲一区二区视频在线| 69精品人人人人| 蜜桃av一区二区在线观看| 精品动漫一区二区三区在线观看| 国产专区欧美精品| 国产欧美日韩在线看| 99久久伊人网影院| 亚洲综合免费观看高清在线观看| 欧美美女一区二区在线观看| 蜜臀av一级做a爰片久久| 亚洲精品一区二区三区99| 国产成人精品三级麻豆| 亚洲欧美日韩人成在线播放| 欧美日韩中文字幕一区| 看片网站欧美日韩| 国产精品毛片a∨一区二区三区| 欧美一卡二卡三卡四卡| 国产在线精品一区二区| 亚洲欧洲在线观看av| 欧美日韩成人综合天天影院| 精品一区二区久久久| 国产精品久久久久国产精品日日 | 奇米色一区二区| 久久久蜜桃精品| 一本大道久久精品懂色aⅴ| 亚洲一区二区av在线| 26uuu国产在线精品一区二区| 国内成人精品2018免费看| 欧美精品一区二区三区蜜臀| 99免费精品视频| 麻豆免费精品视频| 亚洲女同一区二区| 欧美mv和日韩mv的网站| 一本色道久久综合亚洲91| 久久成人18免费观看| 亚洲乱码日产精品bd| 精品国产91乱码一区二区三区| 色婷婷久久一区二区三区麻豆| 久久精品国产第一区二区三区| 日韩码欧中文字| 久久众筹精品私拍模特| 欧美日韩免费一区二区三区视频| 国产毛片一区二区| 男女性色大片免费观看一区二区| 国产视频一区在线观看| 911国产精品| 日本高清免费不卡视频| 粉嫩aⅴ一区二区三区四区| 亚洲国产综合色| 亚洲欧美福利一区二区| 久久久久国产精品人| 欧美精品免费视频| 色综合久久久久久久久| 懂色av一区二区三区免费看| 美女在线观看视频一区二区| 亚洲精品日韩综合观看成人91| 国产亚洲欧美激情| 欧美一区二区成人| 一区二区三区四区激情| 日韩毛片高清在线播放| 精品国产一区二区精华| 日韩免费在线观看| 91精品国产综合久久婷婷香蕉| 色婷婷亚洲一区二区三区| 国产精品一区二区久激情瑜伽| 日韩va亚洲va欧美va久久| 亚洲高清中文字幕| 亚洲一区二区三区中文字幕| 国产精品久久三区| 精品国产自在久精品国产| 日韩视频一区在线观看| 欧美一级夜夜爽| 欧美一区二区三区在线观看视频 | 成人激情开心网| 国产aⅴ综合色| 成人性生交大片免费看中文 | 亚洲一区二区影院| 亚洲美女屁股眼交| 亚洲人精品午夜| 亚洲欧美激情小说另类| 一区二区高清视频在线观看| 亚洲精品高清在线观看| 亚洲午夜视频在线| 日韩精品一级中文字幕精品视频免费观看 | 久久99九九99精品| 在线不卡一区二区| 欧美精品v日韩精品v韩国精品v| 欧美电影免费观看高清完整版在线| 亚洲精品一区二区三区在线观看| 亚洲国产高清在线观看视频| 亚洲午夜精品一区二区三区他趣| 美日韩黄色大片| 99视频热这里只有精品免费| 欧美日韩高清一区二区三区| 亚洲精品一区二区三区蜜桃下载| 国产精品久久久久四虎| 日韩电影在线观看网站| 成人爱爱电影网址| 日韩欧美国产一区在线观看| 亚洲色欲色欲www在线观看| 日韩av电影免费观看高清完整版| 成人做爰69片免费看网站| 欧美日韩黄视频| 中文字幕色av一区二区三区| 久久99热这里只有精品| 欧美在线视频不卡| 国产精品色婷婷| 麻豆国产精品视频| 久久久久久久网| 亚洲午夜久久久久久久久电影院| 国产精品综合网| 欧美一区二区视频网站| 一区二区三区免费网站| 成人性生交大片免费看视频在线 | 成人欧美一区二区三区小说 | 日韩一区和二区| 亚洲一区二区影院| 99久久99久久久精品齐齐| 日韩精品一区在线观看| 五月天激情综合| 在线观看免费一区| 日韩美女啊v在线免费观看| 国产91在线观看| 欧美精品一区二区三区视频| 免费在线观看一区二区三区| 在线精品视频免费观看| 亚洲另类一区二区| 99综合电影在线视频| 国产欧美日本一区二区三区| 国产一区二区三区四区五区美女| 日韩视频一区二区三区在线播放| 亚洲成人av一区二区| 91国内精品野花午夜精品| 自拍视频在线观看一区二区| 国产大陆亚洲精品国产| 精品国产不卡一区二区三区| 久久99国产乱子伦精品免费| 欧美大片在线观看| 久久精品国产在热久久| 欧美精品一区二区三区久久久| 韩国中文字幕2020精品|