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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? huffman算法源代碼.txt

?? 數(shù)據(jù)結(jié)構(gòu)里比較常見到的壓縮算法。希望對大家有用。
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
VC的,就順手貼了過來了,算法流程應該是最 
重要的,很多講數(shù)字壓縮的都有Huffman算法. 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <dir.h> 
#include <dos.h> 
#include <direct.h> 
#include <bios.h> 
#include <conio.h> 
#include <time.h> 
#define EXIT_OK 0 
#define EXIT_FAILED -1 
////////////////////////////////////////////////////////////////// 
//////////////////////////////////////////////////////////////// 
FILE  *infile, *outfile; 
unsigned long int  textsize = 0, codesize = 0, printcount = 0; 
void Error(char *message) 
{ 
        printf("\n%s\n", message); 
        exit(-1); 
} 
/* LZSS Parameters */ 
#define N               4096    /* Size of string buffer */ 
#define F               60      //* Size of look-ahead buffer 60 
#define THRESHOLD       2 
#define NIL             N       /* End of tree's node  */ 
unsigned char 
                text_buf[N + F -1];//-1 
int             match_position, match_length, 
                lson[N + 1], rson[N + 257], dad[N + 1]; 
void InitTree(void)  /* Initializing tree */ 
{ 
        int  i; 
        for (i = N + 1; i <= N + 256; i++) 
                rson[i] = NIL;                  /* root */ 
        for (i = 0; i < N; i++) 
                dad[i] = NIL;                   /* node */ 
} 
void InsertNode(int r)  /* Inserting node to the tree */ 
{ 
        int  i, p, cmp; 
        unsigned char  *key; 
        unsigned c; 
        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 > THRESHOLD) { 
                        if (i > match_length) { 
                                match_position = ((r - p) & (N - 1)) - 1; 
                                if ((match_length = i) >= F) 
                                        break; 
                        } 
                        if (i == match_length) { 
                                if ((c = ((r - p) & (N - 1)) - 1) < match_po 
sitoon) { 
                                        match_position = c; 
                                } 
                        } 
                } 
        } 
        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;  /* remove p */ 
} 
void DeleteNode(int p)  /* Deleting node from the tree */ 
{ 
        int  q; 
        if (dad[p] == NIL) 
                return;                 /* unregistered */ 
        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; 
} 
/* Huffman coding parameters */ 
#define N_CHAR          (256 - THRESHOLD + F) 
                                /* character code (= 0..N_CHAR-1) */ 
#define T               (N_CHAR * 2 - 1)        /* Size of table */ 
#define R               (T - 1)                 /* root position */ 
#define MAX_FREQ        0x8000 
} 
                                        /* update when cumulative frequency 
*/ 
                                        /* reaches to this value */ 
typedef unsigned char uchar; 
/* 
* Tables for encoding/decoding upper 6 bits of 
* sliding dictionary pointer 
*/ 
/* encoder table */ 
uchar p_len[64] = { 
        0x03, 0x04, 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 
        0x05, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 
        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 
        0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 
        0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 
        0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 
        0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 
        0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08 
}; 
uchar p_code[64] = { 
        0x00, 0x20, 0x30, 0x40, 0x50, 0x58, 0x60, 0x68, 
        0x70, 0x78, 0x80, 0x88, 0x90, 0x94, 0x98, 0x9C, 
       0xA0, 0xA4, 0xA8, 0xAC, 0xB0, 0xB4, 0xB8, 0xBC, 
        0xC0, 0xC2, 0xC4, 0xC6, 0xC8, 0xCA, 0xCC, 0xCE, 
        0xD0, 0xD2, 0xD4, 0xD6, 0xD8, 0xDA, 0xDC, 0xDE, 
        0xE0, 0xE2, 0xE4, 0xE6, 0xE8, 0xEA, 0xEC, 0xEE, 
        0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 
        0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF 
}; 
/* decoder table */ 
uchar d_code[256] = { 
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
        0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 
        0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 
        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 
        0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 
        0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 
        0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 
        0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 
        0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 
        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 
        0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 
        0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 
        0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 
        0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 
        0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 0x0B, 
        0x0C, 0x0C, 0x0C, 0x0C, 0x0D, 0x0D, 0x0D, 0x0D, 
        0x0E, 0x0E, 0x0E, 0x0E, 0x0F, 0x0F, 0x0F, 0x0F, 
        0x10, 0x10, 0x10, 0x10, 0x11, 0x11, 0x11, 0x11, 
        0x12, 0x12, 0x12, 0x12, 0x13, 0x13, 0x13, 0x13, 
        0x14, 0x14, 0x14, 0x14, 0x15, 0x15, 0x15, 0x15, 
        0x16, 0x16, 0x16, 0x16, 0x17, 0x17, 0x17, 0x17, 
        0x18, 0x18, 0x19, 0x19, 0x1A, 0x1A, 0x1B, 0x1B, 
        0x1C, 0x1C, 0x1D, 0x1D, 0x1E, 0x1E, 0x1F, 0x1F, 
        0x20, 0x20, 0x21, 0x21, 0x22, 0x22, 0x23, 0x23, 
        0x24, 0x24, 0x25, 0x25, 0x26, 0x26, 0x27, 0x27, 
        0x28, 0x28, 0x29, 0x29, 0x2A, 0x2A, 0x2B, 0x2B, 
        0x2C, 0x2C, 0x2D, 0x2D, 0x2E, 0x2E, 0x2F, 0x2F, 
        0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 
        0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 
}; 
uchar d_len[256] = { 
        0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 
        0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 
        0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 
        0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 
        0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 
        0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 
        0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 
        0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 
        0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 
        0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 
        0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 
        0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 
        0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 
        0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 
        0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 
        0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 
        0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 
        0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 
        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 
        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 
        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 
       0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 
        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 
        0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 
        0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 
        0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 
        0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 
        0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 
        0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 
        0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 
        0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 
        0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 
}; 
unsigned freq[T + 1];   /* cumulative freq table */ 
/* 
* pointing parent nodes. 
* area [T..(T + N_CHAR - 1)] are pointers for leaves 
*/ 
int prnt[T + N_CHAR]; 
/* pointing children nodes (son[], son[] + 1)*/ 
int son[T]; 
unsigned getbuf = 0; 
uchar getlen = 0; 
int GetBit(void)        /* get one bit */ 
{ 
        int i; 
        while (getlen <= 8) { 
                if ((i = getc(infile)) < 0) i = 0; 
                getbuf |= i << (8 - getlen); 
                getlen += 8; 
        } 
        i = getbuf; 
        getbuf <<= 1; 
        getlen--; 
        return (i<0); 
} 
int GetByte(void)       /* get a byte */ 
{ 
        long int i; 
        while (getlen <= 8) { 
                if ((i = getc(infile)) < 0) i = 0; 
                getbuf |= i << (8 - getlen); 
                getlen += 8; 
        } 
        i = getbuf; 
        getbuf <<= 8; 
        getlen -= 8; 
        return (i>>8); 
} 
unsigned putbuf = 0; 
uchar putlen = 0; 
void Putcode(int l, unsigned c)         /* output c bits */ 
{ 
        putbuf |= c >> putlen; 
        if ((putlen += l) >= 8) { 
                putc(putbuf >> 8, outfile); 
                if ((putlen -= 8) >= 8) { 
                        putc(putbuf, outfile); 
                        codesize += 2; 
                        putlen -= 8; 
                        putbuf = c << (l - putlen); 
                } else { 
                        putbuf <<= 8; 
                        codesize++; 
                } 
        } 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品看片你懂得| 欧美亚洲国产怡红院影院| 日韩精品一区二区三区视频在线观看| 亚洲国产人成综合网站| 91麻豆精品国产无毒不卡在线观看| 午夜视频在线观看一区| 亚洲精品一区二区三区精华液 | 一区二区三区不卡视频 | 日韩成人一级片| 欧美xxxxx牲另类人与| 国产精品自拍毛片| 中文一区一区三区高中清不卡| 97aⅴ精品视频一二三区| 亚洲国产日韩精品| 久久影院午夜片一区| 成人精品鲁一区一区二区| 亚洲少妇30p| 欧美猛男gaygay网站| 国产在线观看一区二区| 国产精品福利一区二区三区| 欧美日韩美少妇| 国产成人免费xxxxxxxx| 亚洲韩国精品一区| 久久久国产精品麻豆| 欧洲亚洲国产日韩| 精品亚洲国产成人av制服丝袜 | 亚洲欧美日韩国产手机在线| 欧美精品第一页| 成人丝袜视频网| 五月激情综合婷婷| 国产精品久久久久影视| 在线不卡中文字幕播放| 成人精品一区二区三区四区| 天天综合天天做天天综合| 欧美国产97人人爽人人喊| 欧美精品高清视频| 97se亚洲国产综合自在线| 黄色小说综合网站| 波多野结衣亚洲| 石原莉奈一区二区三区在线观看| 国产欧美视频一区二区三区| 欧美精品日韩一区| 91美女福利视频| 国产九九视频一区二区三区| 五月婷婷激情综合网| 亚洲日本青草视频在线怡红院| 日韩欧美国产1| 91丝袜国产在线播放| 精品无码三级在线观看视频| 亚洲综合色丁香婷婷六月图片| 国产清纯在线一区二区www| 91麻豆精品91久久久久久清纯| 波多野结衣中文一区| 国产一区在线观看视频| 日韩一区精品字幕| 亚洲国产精品自拍| 亚洲黄色av一区| 亚洲欧洲三级电影| 国产精品美女久久久久aⅴ| 久久综合成人精品亚洲另类欧美| 欧美一区二视频| 69av一区二区三区| 欧美日韩成人在线| 欧美综合视频在线观看| 日本久久电影网| 91女人视频在线观看| 成人av网站在线观看免费| 国产精品综合视频| 欧美日韩视频在线观看一区二区三区| 风间由美一区二区三区在线观看| 美女精品一区二区| 麻豆精品国产91久久久久久| 青娱乐精品视频| 免费观看久久久4p| 蜜桃视频一区二区| 日本一道高清亚洲日美韩| 偷拍自拍另类欧美| 日韩精品久久理论片| 免费成人美女在线观看.| 蜜臀久久久99精品久久久久久| 日本成人在线不卡视频| 蜜桃传媒麻豆第一区在线观看| 丝袜美腿亚洲色图| 免费视频一区二区| 久久99精品一区二区三区三区| 免费不卡在线观看| 国产一区二区三区免费播放| 成人自拍视频在线观看| 99久久精品国产麻豆演员表| 91成人国产精品| 欧美电影在哪看比较好| 日韩精品专区在线影院重磅| 久久久亚洲国产美女国产盗摄| 欧美激情综合五月色丁香小说| 国产精品久久一卡二卡| 一区二区三区在线看| 丝袜美腿一区二区三区| 国产一区二区三区不卡在线观看 | 99久久er热在这里只有精品66| aaa亚洲精品| 欧美日韩精品欧美日韩精品| 91精品国产综合久久精品性色| 欧美一区二区高清| 久久精品视频一区二区| 中文字幕一区视频| 亚洲不卡一区二区三区| 久久99精品久久久久久国产越南 | 制服丝袜亚洲播放| 久久影院午夜片一区| 亚洲视频一区二区在线观看| 香蕉av福利精品导航| 韩国视频一区二区| 色偷偷成人一区二区三区91| 91精品国产综合久久精品图片| 国产精品系列在线| 日韩精品91亚洲二区在线观看| 国产精品中文字幕一区二区三区| 色香色香欲天天天影视综合网| 日韩精品自拍偷拍| 一区二区不卡在线播放| 国产美女在线精品| 欧美日韩大陆一区二区| 国产精品不卡一区二区三区| 久久99精品久久久久久| 欧美在线视频你懂得| 国产亚洲欧美日韩在线一区| 亚洲电影中文字幕在线观看| 国产成人激情av| 91精品国产色综合久久不卡蜜臀| 国产精品午夜在线观看| 久久99精品国产.久久久久 | 日本三级亚洲精品| 99久久精品国产毛片| 欧美精品一区二| 天天色天天操综合| 成人高清在线视频| 久久久久久99久久久精品网站| 午夜日韩在线电影| 色婷婷久久久综合中文字幕 | 国产精品伦理一区二区| 日韩成人dvd| 欧美怡红院视频| 中文字幕制服丝袜成人av | 一区在线播放视频| 国产精品538一区二区在线| 884aa四虎影成人精品一区| 亚洲精品老司机| 91免费在线看| 亚洲欧洲成人精品av97| 国产成人一级电影| 精品国产乱码久久久久久久久 | 精品久久一二三区| 日韩不卡一二三区| 欧美美女一区二区| 亚洲国产一区二区a毛片| 在线观看一区二区视频| 亚洲欧美日韩国产手机在线| 99这里只有精品| 中文字幕一区二区三区在线不卡| 日韩一区二区三区观看| 日韩精品电影在线| 欧美一区二区三区小说| 蜜臀av国产精品久久久久| 欧美久久一区二区| 天天综合色天天综合色h| 7777精品伊人久久久大香线蕉超级流畅 | 欧美精品自拍偷拍动漫精品| 亚洲自拍偷拍欧美| 91久久精品一区二区三| 亚洲精品久久7777| 欧美午夜精品一区二区蜜桃| 亚洲午夜av在线| 欧美日韩一级黄| 性感美女久久精品| 欧美卡1卡2卡| 蜜桃视频在线观看一区二区| 精品蜜桃在线看| 激情久久久久久久久久久久久久久久| 日韩精品一区二区三区中文精品 | 久久电影网站中文字幕| 精品国产免费人成在线观看| 国产一区在线不卡| 中文在线一区二区| 91色在线porny| 亚洲午夜激情av| 欧美大白屁股肥臀xxxxxx| 久久精品国产成人一区二区三区| 精品日韩成人av| 成人av资源在线观看| 亚洲精品综合在线| 欧美色区777第一页| 视频在线观看一区| 精品国产乱码久久久久久老虎| 福利一区二区在线| 一个色妞综合视频在线观看| 在线不卡a资源高清| 国产精品一区在线观看你懂的| 亚洲欧美综合另类在线卡通| 欧美电影在哪看比较好| 国产精品123区|