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

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

?? huffman.cpp

?? 簡單的遠程控制工具,分為服務器與客戶齋,讓你了解socket編程的知識.
?? CPP
字號:
// Huffman1.cpp: implementation of the CHuffman class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Huffman.h"

//#include <alloc.h>
#include <dos.h>
#include <fcntl.h>

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CHuffman::CHuffman()
{
_maskshuff[0] = &(_mask.chars.c3);
_maskshuff[1] = &(_mask.chars.c2);
_maskshuff[2] = &(_mask.chars.c1);
_maskshuff[3] = &(_mask.chars.c0);

}

CHuffman::~CHuffman()
{

}

void CHuffman::ntXORcode(char *outbuff, char *inbuff, long lSize )
{
	for(; lSize > 0; lSize--)
	{
     *outbuff ^= *inbuff;
	 outbuff++;
	 inbuff++;
	}
}
int CHuffman::ntDecode(char *outbuff, char *inbuff )
{
	int c, i, nchildren;
	int inleft;

	_eof = &_characters[0];
	if (inbuff[0] != US) return( 0 );
	if (inbuff[1] != RS) return( 0 );
	_inp = &inbuff[2];
	_origsize = 0;
	for (i=0; i<4; i++)
		_origsize = _origsize*256 + ((*_inp++) & 0377);
	inleft = _origsize;
	_dmaxlev = *_inp++ & 0377;

	if (_dmaxlev > 24) return( 0 );

	for (i=1; i<=_dmaxlev; i++)
		_intnodes[i] = *_inp++ & 0377;
	for (i=1; i<=_dmaxlev; i++) {
		_tree[i] = _eof;
		for (c=_intnodes[i]; c>0; c--) {
			if (_eof >= &_characters[255]) return( 0 );
			*_eof++ = *_inp++;
		}
	}
	*_eof++ = *_inp++;
	_intnodes[_dmaxlev] += 2;
	inleft -= _inp - &inbuff[0];

	if (inleft < 0) return( 0 );
	nchildren = 0;
	for (i=_dmaxlev; i>=1; i--) {
		c = _intnodes[i];
		_intnodes[i] = nchildren /= 2;
		nchildren += c;
	}
	return ( _decode( inleft,outbuff ));
}

int CHuffman::_decode( int inleft, char *outbuff )
{
	int bitsleft, c, i;
	int j, lev;
	char *p;

	_outp = &outbuff[0];
	lev = 1;
	i = 0;
	while (1) {
		if (--inleft < 0) return( 0 );
		c = *_inp++;
		bitsleft = 8;
		while (--bitsleft >= 0) {
			i *= 2;
			if (c & 0200)
				i++;
			c <<= 1;
			if ((j = i - _intnodes[lev]) >= 0) {
				p = &_tree[lev][j];
				if (p == _eof){
					c = _outp - &outbuff[0];
					_origsize -= c;
					if (_origsize != 0) return( 0 );
					return (1);
				}
				*_outp++ = *p;
				lev = 1;
				i = 0;
			}else
				lev++;
		}
	}
}
int CHuffman::ntIsarc(char *inbuff )
{
	if( inbuff[0] == US && inbuff[1] == RS )
		return( 1 );
	else
		return( 0 );
}
int CHuffman::ntGetorig(char *inbuff )
{
	int i;
	char *in;
	int size;

	in = inbuff+2;
	size = 0;
	for (i=0; i<4; i++)
		size = size*256 + ((*in++) & 0377);
	return( size );
}
int CHuffman::ntEncode(char *outbuff, char *inbuff, int buflen )
{
        register int c, i, p;
        long bitsout;

		_input( inbuff,buflen );

        _diffbytes = -1;
		_count[ END ] = 1;
		_insize.lint.lng = 0L;
		_n_ = 0;
        for (i=END; i>=0; i--) {
                _parent[i] = 0;
                if (_count[i] > 0) {
                        _diffbytes++;
                        _insize.lint.lng += _count[i];
                        _heap[++_n_].count = _count[i];
                        _heap[_n_].node = i;
                }
		}
		if (_diffbytes == 1) return( 0 );
        _insize.lint.lng >>= 1;
        for (i=_n_/2; i>=1; i--)
				_heapify(i);

        _lastnode = END;
        while (_n_ > 1) {
                _parent[_heap[1].node] = ++_lastnode;
                _inc = _heap[1].count;
                hmove (_heap[_n_], _heap[1]);
                _n_--;
				_heapify(1);
                _parent[_heap[1].node] = _lastnode;
                _heap[1].node = _lastnode;
                _heap[1].count += _inc;
				_heapify(1);
        }
        _parent[_lastnode] = 0;

        bitsout = _maxlev = 0;
        for (i=1; i<=24; i++)
                _levcount[i] = 0;
        for (i=0; i<=END; i++) {
                c = 0;
                for (p=_parent[i]; p!=0; p=_parent[p])
                        c++;
                _levcount[c]++;
                _length[i] = c;
                if (c > _maxlev)
                        _maxlev = c;
                bitsout += c*(_count[i]>>1);
        }
        if (_maxlev > 24) return( 0 );

        _inc = 1L << 24;
        _inc >>= _maxlev;
        _mask.lint.lng = 0;
        for (i=_maxlev; i>0; i--) {
                for (c=0; c<=END; c++)
                        if (_length[c] == i) {
                                _bits[c] = _mask.lint.lng;
                                _mask.lint.lng += _inc;
                        }
                _mask.lint.lng &= ~_inc;
                _inc <<= 1;
        }

		return( _output( outbuff,inbuff,buflen ));
}
void CHuffman::_input (char *inbuff, int buflen )
{
		register int i;

        for (i=0; i<END; i++)
                _count[i] = 0;
		while (buflen > 0)
				_count[inbuff[--buflen]&0377] += 2;
}
int CHuffman::_output(char *outbuff,char *inbuff, int buflen )
{
		int c, i;
        char *inp;
        register char **q, *outp;
        register int bitsleft;
        long temp;

        outbuff[0] = 037;       /* ascii US */
		outbuff[1] = 036;       /* ascii RS */

        temp = _insize.lint.lng;
        for (i=5; i>=2; i--) {
                outbuff[i] =  (char) (temp & 0377);
                temp >>= 8;
        }
        outp = outbuff+6;
        *outp++ = _maxlev;
        for (i=1; i<_maxlev; i++)
                *outp++ = _levcount[i];
        *outp++ = _levcount[_maxlev]-2;
        for (i=1; i<=_maxlev; i++)
                for (c=0; c<END; c++)
                        if (_length[c] == i)
                                *outp++ = c;

		inp = inbuff;
        bitsleft = 8;
        do {
                c = (--buflen < 0) ? END : (*inp++ & 0377);
                _mask.lint.lng = _bits[c]<<bitsleft;
                q = &_maskshuff[0];
                if (bitsleft == 8)
                        *outp = **q++;
                else
                        *outp |= **q++;
                bitsleft -= _length[c];
                while (bitsleft < 0) {
                        *++outp = **q++;
                        bitsleft += 8;
                }
        } while (c != END);
        if (bitsleft < 8)
                outp++;
        c = outp-outbuff;
		return (c);
}
void CHuffman::_heapify(int i )
{
        register int k;
        int lastparent;
		struct _heap heapsubi;

        hmove (_heap[i], heapsubi);
        lastparent = _n_/2;
        while (i <= lastparent) {
                k = 2*i;
                if (_heap[k].count > _heap[k+1].count && k < _n_)
                        k++;
                if (heapsubi.count < _heap[k].count)
                        break;
                hmove (_heap[k], _heap[i]);
                i = k;
        }
        hmove (heapsubi, _heap[i]);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久久久久久久久久| 欧美色倩网站大全免费| 亚洲国产精品一区二区久久| 久久综合九色综合97婷婷女人 | 国产尤物一区二区| 亚洲最大成人网4388xx| 精品久久久久久久久久久久久久久 | 精品99999| 精品视频全国免费看| 99在线精品一区二区三区| 在线观看国产91| 国产成人免费av在线| 日韩综合小视频| 亚洲精品自拍动漫在线| 欧美激情综合五月色丁香小说| 91.麻豆视频| 欧美性大战久久久久久久蜜臀| 国产sm精品调教视频网站| 青青国产91久久久久久| 亚洲一区在线观看网站| 国产精品另类一区| 26uuu欧美| 欧美久久久久免费| 日本丰满少妇一区二区三区| 成人天堂资源www在线| 国产精品一区二区久激情瑜伽| 美女视频黄 久久| 日韩精品一区第一页| 亚洲综合色丁香婷婷六月图片| 中文字幕中文字幕一区| 日本一区二区三区视频视频| 久久综合丝袜日本网| 精品日韩成人av| 欧美mv和日韩mv国产网站| 欧美丰满嫩嫩电影| 欧美日韩www| 欧美男女性生活在线直播观看| 91视频一区二区| 91原创在线视频| 91丝袜呻吟高潮美腿白嫩在线观看| 成人av中文字幕| 成人黄色电影在线| av男人天堂一区| 92精品国产成人观看免费| 91麻豆精东视频| 色欧美88888久久久久久影院| 色偷偷久久人人79超碰人人澡| 色88888久久久久久影院按摩| 色综合天天综合给合国产| 一道本成人在线| 欧美做爰猛烈大尺度电影无法无天| 在线观看日产精品| 精品视频一区三区九区| 欧美一区二区大片| 精品少妇一区二区| 国产校园另类小说区| 国产精品乱人伦| 亚洲午夜一区二区三区| 全部av―极品视觉盛宴亚洲| 国产在线播放一区| 成人开心网精品视频| 91久久精品网| 欧美日本精品一区二区三区| 日韩区在线观看| 国产欧美一区二区三区鸳鸯浴| 亚洲欧美色图小说| 日韩黄色小视频| 国产在线麻豆精品观看| 99re热这里只有精品免费视频| 在线精品视频一区二区三四| 欧美一级日韩不卡播放免费| 国产喂奶挤奶一区二区三区| 亚洲综合激情网| 久久国产精品无码网站| 成人精品gif动图一区| 欧美在线免费观看亚洲| 欧美成人一区二区三区片免费| 日本一区二区动态图| 亚洲国产乱码最新视频| 国产乱码精品一区二区三区av | 欧美电影免费观看高清完整版在| 久久久久久久久岛国免费| 亚洲视频一二三| 麻豆精品精品国产自在97香蕉| 懂色av一区二区三区免费观看| 欧美日韩在线综合| 国产亚洲欧美日韩日本| 亚洲国产精品人人做人人爽| 国内国产精品久久| 在线精品观看国产| 国产三级久久久| 三级影片在线观看欧美日韩一区二区| 狠狠色丁香久久婷婷综| 欧洲人成人精品| 欧美激情在线一区二区| 青青青伊人色综合久久| 日本精品视频一区二区| 国产亚洲精品免费| 奇米色一区二区| 在线免费观看日韩欧美| 国产一区二区精品在线观看| 国产亚洲欧美色| 亚洲国产综合在线| 国产裸体歌舞团一区二区| 欧美亚洲国产bt| 久久五月婷婷丁香社区| 亚洲二区视频在线| 不卡的电视剧免费网站有什么| 欧美日韩在线免费视频| 国产精品国产精品国产专区不蜜| 免费美女久久99| 精品视频资源站| 亚洲蜜臀av乱码久久精品蜜桃| 久久超碰97中文字幕| 欧美人动与zoxxxx乱| 一区二区三区四区不卡在线| 成人午夜免费av| 国产亚洲精品bt天堂精选| 精品制服美女丁香| 56国语精品自产拍在线观看| 一区二区三区在线播| av福利精品导航| 国产精品久线在线观看| 国产成人午夜99999| 26uuu久久综合| 久久国产精品第一页| 欧美一区国产二区| 亚洲3atv精品一区二区三区| 在线免费观看日本一区| 亚洲老司机在线| 色婷婷亚洲精品| 亚洲免费在线观看视频| 91亚洲精品久久久蜜桃网站| 中文字幕av不卡| 懂色av一区二区三区蜜臀| 国产日产亚洲精品系列| 国产麻豆视频一区| 国产婷婷色一区二区三区在线| 国产精品一区二区久久不卡| 国产日韩精品一区二区三区| 国产精品中文有码| 国产精品无遮挡| 99久久99久久免费精品蜜臀| 综合av第一页| 欧美视频一区二区三区在线观看| 亚洲午夜成aⅴ人片| 欧美日韩电影一区| 欧美bbbbb| 国产亚洲一区二区三区四区| 成人国产精品视频| 亚洲男人电影天堂| 在线观看一区不卡| 精品国产91乱码一区二区三区| 青青草国产成人99久久| 日韩欧美国产综合在线一区二区三区| 蜜臀av性久久久久蜜臀aⅴ| 欧美精品一区二区三区很污很色的| 精品一区二区三区蜜桃| 国产欧美精品一区二区色综合朱莉| 国产91丝袜在线观看| 亚洲人成网站精品片在线观看 | 日韩一区二区三区在线观看| 蜜臀精品久久久久久蜜臀| 久久亚洲免费视频| 成人福利在线看| 亚洲图片自拍偷拍| 精品国产精品一区二区夜夜嗨| 国产福利电影一区二区三区| 日韩理论片中文av| 91精品国产综合久久久久久| 国产精品一级黄| 一区二区三区在线看| 欧美zozozo| 99综合电影在线视频| 日韩福利视频网| 国产欧美日韩中文久久| 日本高清成人免费播放| 久久精品国产亚洲一区二区三区| 中文字幕精品一区| 欧美人伦禁忌dvd放荡欲情| 国产在线精品免费av| 亚洲视频1区2区| 欧美成人vps| 在线观看日韩一区| 精品一区二区三区视频在线观看| 成人欧美一区二区三区白人| 日韩精品一区在线观看| 91麻豆国产自产在线观看| 欧美96一区二区免费视频| 国产精品国产自产拍高清av王其 | 国模娜娜一区二区三区| 亚洲欧洲日韩一区二区三区| 日韩亚洲欧美成人一区| 91在线免费播放| 狠狠久久亚洲欧美| 一二三四社区欧美黄| 欧美激情一二三区| 5566中文字幕一区二区电影| 色悠悠亚洲一区二区| 国产成人免费视频网站|