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

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

?? lzhuf.cpp

?? 非常好用的五子棋游戲源碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
        }
    }
}

// Initalization of tree
static void StartHuff ()
{
    int i, j;

    for (i = 0; i < N_CHAR; i++)
    {
        freq[i] = 1;
        son[i] = i + T;
        prnt[i + T] = i;
    }
    i = 0;
    j = N_CHAR;
    while (j <= R)
    {
        freq[j] = freq[i] + freq[i + 1];
        son[j] = i;
        prnt[i] = prnt[i + 1] = j;
        i += 2;
        ++j;
    }
    freq[T] = 0xFFFF;
    prnt[R] = 0;
}

// reconstruction of tree
static void reconst()
{
    int i, j, k;
    unsigned f, l;

    // collect leaf nodes in the first half of the table and replace the
    // freq by (freq + 1) / 2.
    j = 0;
    for (i = 0; i < T; i++)
    {
        if (son[i] >= T)
        {
            freq[j] = (freq[i] + 1) / 2;
            son[j] = son[i];
            ++j;
        }
    }
    // begin constructing tree by connecting sons
    for (i = 0, j = N_CHAR; j < T; i += 2, j++)
    {
        k = i + 1;
        f = freq[j] = freq[i] + freq[k];
        for (k = j - 1; f < freq[k]; k--)
            ;
        ++k;
        l = (j - k) * 2;
        memmove (&freq[k + 1], &freq[k], l);
        freq[k] = f;
        memmove (&son[k + 1], &son[k], l);
        son[k] = i;
    }
    // connect prnt
    for (i = 0; i < T; i++)
    {
        if ((k = son[i]) >= T)
            prnt[k] = i;
        else
            prnt[k] = prnt[k + 1] = i;
    }
}

// increment frequency of given code by one, and update tree
static void update(int c)
{
    int i, j, k, l;

    if (freq[R] == MAX_FREQ)
        reconst();
    c = prnt[c + T];
    do
    {
        k = ++freq[c];

        // if the order is disturbed, exchange nodes
        if (k > (signed)freq[l = c + 1])
        {
            while (k > (signed)freq[++l])
                ;
            --l;
            freq[c] = freq[l];
            freq[l] = k;

            i = son[c];
            prnt[i] = l;
            if (i < T)
                prnt[i + 1] = l;

            j = son[i];
            son[l] = i;

            prnt[j] = c;
            if (j < T)
                prnt[j + 1] = c;
            son[c] = j;

            c = l;
        }
    } while ((c = prnt[c]) != 0);       // repeat up to root
}

static unsigned code, len;

static void EncodeChar (unsigned c)
{
    unsigned i;
    int j, k;

    i = 0;
    j = 0;
    k = prnt[c + T];

    // travel from leaf to root
    do
    {
        i >>= 1;

        // if address of node is odd-numbered, choose larger borther node
        if (k & 1)
            i += 0x8000;

        ++j;
    } while ((k = prnt[k]) != R);
    Putcode(j, i);
    code = i;
    len = j;
    update(c);
}

static void EncodePosition(unsigned c)
{
    unsigned i;

    // output upper 6 bits by table lookup
    i = c >> 6;
    Putcode(p_len[i], (unsigned)p_code[i] << 8);

    // output lower 6 bits verbatim
    Putcode(6, (c & 0x3F) << 10);
}

static void EncodeEnd()
{
    if (putlen)
        write_byte(putbuf >> 8);
    ++codesize;
}

static int DecodeChar()
{
    unsigned c;

    c = son[R];

    // Travel from root to leaf, choosing the smaller child node (son[]) if
    // the read bit is 0, the bigger (son[] + 1) if 1
    while (c < T)
    {
        c += GetBit();
        c = son[c];
    }
    c -= T;
    update(c);
    return c;
}

static int DecodePosition()
{
    unsigned i, j, c;

    // recover upper 6 bits from table
    i = GetByte();
    c = (unsigned)d_code[i] << 6;
    j = d_len[i];

    // read lower 6 bits verbatim
    j -= 2;
    while (j--)
    {
        i = (i << 1) + GetBit();
    }
    return c | (i & 0x3F);
}

// ********** LZHUF Compression ******

// Compresses using LZHUF method
void EXPORT lzhuf_encode ()
{
    int i, c, len, r, s, last_match_length;

    textsize = stream_size();
    // Output size of text
    i = textsize & 0x000000FF; write_byte(i);
    i = textsize & 0x0000FF00; write_byte(i);
    i = textsize & 0x00FF0000; write_byte(i);
    i = textsize & 0xFF000000; write_byte(i);
    if (!textsize)
        return;


    beginning_of_data();
    textsize = 0;
    StartHuff();
    InitTree();
    s = 0;
    r = N - F;
    for (i = s; i < r; i++)
        text_buf[i] = ' ';
    for (len = 0; len < F && !end_of_data(); len++)
        text_buf[r + len] = c = read_byte();
    textsize = len;
    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;
            EncodeChar(text_buf[r]);
        } else {
            EncodeChar(255 - THRESHOLD + match_length);
            EncodePosition(match_position);
        }
        last_match_length = match_length;
        for (i = 0; i < last_match_length && !end_of_data(); i++)
        {
            DeleteNode(s);
            text_buf[s] = c = read_byte();
            if (s < F - 1)
                text_buf[s + N] = c;
            s = (s + 1) & (N - 1);
            r = (r + 1) & (N - 1);
            InsertNode(r);
        }
        while (i++ < last_match_length)
        {
            DeleteNode(s);
            s = (s + 1) & (N - 1);
            r = (r + 1) & (N - 1);
            if (--len)
                InsertNode(r);
        }
    } while (len > 0);
    EncodeEnd();
}

// Decompress a LZHUF compressed file
void EXPORT lzhuf_decode()
{
    int i, j, k, r, c;
    unsigned long count;

    c = read_byte(); *(&textsize + 0) = c;
    c = read_byte(); *(&textsize + 1) = c;
    c = read_byte(); *(&textsize + 2) = c;
    c = read_byte(); *(&textsize + 3) = c;

    if (!textsize)
        return;

    StartHuff();
    for (i = 0; i < N - F; i++)
        text_buf[i] = ' ';
    r = N - F;
    for (count = 0; count < textsize; )
    {
        c = DecodeChar();
        if (c < 256)
        {
            write_byte(c);
            text_buf[r++] = c;
            r &= (N - 1);
            ++count;
        } else {
            i = (r - DecodePosition() - 1) & (N - 1);
            j = c - 255 + THRESHOLD;
            for (k = 0; k < j; k++)
            {
                c = text_buf[(i + k) & (N - 1)];
                write_byte(c);
                text_buf[r++] = c;
                r &= (N - 1);
                ++count;
            }
        }
    }
}





    








            

                

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产免费久久精品| 国产在线不卡一卡二卡三卡四卡| 亚洲成人资源在线| 国产精品18久久久久| 欧美人伦禁忌dvd放荡欲情| 国产日韩欧美激情| 麻豆精品一二三| 欧美性一二三区| 综合自拍亚洲综合图不卡区| 久久精品72免费观看| 欧美三级中文字幕| 最新国产成人在线观看| 国产精品 日产精品 欧美精品| 51久久夜色精品国产麻豆| 亚洲精品欧美综合四区| 国产69精品久久久久毛片| 精品国产乱码久久久久久蜜臀| 亚洲va欧美va人人爽| 欧美综合色免费| 一区二区三区四区激情| 成人av在线看| 中文天堂在线一区| 国产激情视频一区二区在线观看| 欧美成人猛片aaaaaaa| 日精品一区二区| 欧美美女激情18p| 亚洲一区日韩精品中文字幕| 91精品福利在线| 亚洲精品国产一区二区精华液| 99精品视频免费在线观看| 成人免费小视频| 97久久超碰国产精品| 中文字幕在线视频一区| 成人免费视频一区二区| 中文字幕av一区二区三区高| 成人午夜看片网址| 中文字幕一区二区三区四区不卡 | 色av一区二区| 亚洲三级理论片| 色综合天天综合网国产成人综合天| 欧美高清在线一区二区| 波多野结衣的一区二区三区| 中文字幕永久在线不卡| 日本韩国一区二区三区视频| 亚洲永久免费av| 91精品国产综合久久精品app| 天天综合日日夜夜精品| 欧美一区二区三级| 国产一区二区不卡在线| 中文字幕欧美区| 91在线国内视频| 亚洲午夜影视影院在线观看| 91精品国产色综合久久| 精品亚洲成av人在线观看| 国产调教视频一区| 色综合久久中文综合久久97| 日韩在线播放一区二区| 精品国内片67194| a级精品国产片在线观看| 亚洲国产精品视频| 欧美本精品男人aⅴ天堂| 国产精品 日产精品 欧美精品| 亚洲欧美怡红院| 91麻豆精品91久久久久久清纯| 极品美女销魂一区二区三区免费| 国产目拍亚洲精品99久久精品| 日本大香伊一区二区三区| 免费欧美高清视频| 中文字幕欧美一区| 日韩午夜三级在线| 色哟哟一区二区三区| 男女男精品网站| 中文字幕亚洲一区二区va在线| 在线播放日韩导航| 国产成人亚洲综合a∨猫咪| 亚洲制服丝袜一区| 久久久久久久久久美女| 欧美性生活一区| 国产91丝袜在线18| 日韩电影免费一区| 亚洲欧洲日韩综合一区二区| 91精品在线一区二区| 色哟哟国产精品| 国产精品一二三四| 伊人色综合久久天天| 精品国产成人系列| 欧美日韩国产免费一区二区| 成人h动漫精品一区二区| 日本欧美一区二区三区| 亚洲精品免费在线观看| 国产日韩精品一区二区三区| 欧美一区二区三区电影| 在线一区二区三区四区五区| 成人三级伦理片| 狠狠久久亚洲欧美| 免费久久99精品国产| 亚洲国产精品久久久久婷婷884| 中文字幕av一区二区三区高 | 九九九久久久精品| 亚洲高清中文字幕| 亚洲乱码中文字幕| 中文字幕欧美日本乱码一线二线| 精品剧情在线观看| 日韩一区二区三区精品视频| 欧美午夜精品久久久久久孕妇 | 91福利小视频| 北岛玲一区二区三区四区| 国产一区二区三区久久悠悠色av| 爽好多水快深点欧美视频| 亚洲成人一区在线| 亚洲午夜久久久久久久久电影院 | 久久综合九色综合97_久久久 | 美女脱光内衣内裤视频久久影院| 亚洲精品国产a| 一区二区三区在线观看欧美| 1024精品合集| 亚洲激情图片一区| 亚洲在线免费播放| 五月天激情综合网| 性做久久久久久| 日本在线观看不卡视频| 日韩国产欧美三级| 天天综合天天综合色| 日韩国产在线一| 久久精品噜噜噜成人av农村| 精品一区二区在线播放| 国产一区二区三区视频在线播放| 国产一区二区网址| 成人av午夜影院| 成人av高清在线| 91豆麻精品91久久久久久| 欧美色图天堂网| 欧美一级精品在线| 久久精品人人爽人人爽| 亚洲天堂久久久久久久| 五月天久久比比资源色| 精品一区二区在线视频| av激情综合网| 欧美日韩精品综合在线| 日韩精品中文字幕一区| 国产婷婷色一区二区三区| 中文字幕在线播放不卡一区| 亚洲成va人在线观看| 麻豆国产精品视频| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 国产成人在线观看| 91视频国产观看| 制服.丝袜.亚洲.另类.中文| 国产日产欧美一区| 亚洲电影激情视频网站| 国产一区999| 在线免费av一区| 久久综合色之久久综合| 自拍偷在线精品自拍偷无码专区| 亚洲成人精品一区| 成人一区二区视频| 欧美男男青年gay1069videost | 4438x成人网最大色成网站| 精品久久国产老人久久综合| 国产精品久久久久9999吃药| 日日噜噜夜夜狠狠视频欧美人 | 久久精品一二三| 亚洲精品高清在线| 国产精品一区二区你懂的| 在线免费观看日本欧美| 国产欧美视频一区二区三区| 天堂av在线一区| 色激情天天射综合网| 久久久噜噜噜久久人人看| 午夜精品久久久久久久99水蜜桃| 成人自拍视频在线| 日韩一区二区在线观看| 亚洲欧美日韩系列| 国产v综合v亚洲欧| 日韩欧美中文字幕公布| 玉米视频成人免费看| 成人av在线观| 欧美激情中文字幕一区二区| 免费xxxx性欧美18vr| 色琪琪一区二区三区亚洲区| 日本一区二区三区四区| 久久国产精品免费| 欧美日韩一区在线| 亚洲自拍另类综合| 色婷婷精品久久二区二区蜜臀av | 91农村精品一区二区在线| 久久综合九色综合97婷婷女人| 日韩精品福利网| 欧美日韩国产小视频| 亚洲曰韩产成在线| 色综合天天综合网国产成人综合天| 欧美极品美女视频| 岛国一区二区三区| 欧美精品一区二区三区视频 | av在线不卡网| 中文字幕中文字幕中文字幕亚洲无线 | 精品国产免费视频| 久久精品国产澳门| 91精品国产麻豆国产自产在线 | 亚洲午夜免费电影|