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

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

?? lzwtable.cpp

?? 用VC++實(shí)現(xiàn)LZW算法
?? CPP
字號:
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"  
#include "string.h"
#include "memory.h"         
#include "conio.h"
#include "lzwcode.h"
#include "lzwtable.h"

/*
class CLZWEncodeTable
*/
CLZWDecodeTable::CLZWDecodeTable(BOOL fInit)
{
	m_pbContain=NULL;
	m_dwTableEntryNumber=0;
	if(fInit)
		InitLZWTable();
}
CLZWDecodeTable::~CLZWDecodeTable()
{
	ClearDecodeTable();
}
void CLZWDecodeTable::ClearDecodeTable(void)
{   
	if(m_pbContain==NULL)
		return;
	for(int i=0;i<4096;i++)
	{
		if(m_pbContain[i])
			delete (m_pbContain[i]);
	}
	delete m_pbContain;
	m_pbContain=NULL;
	m_dwTableEntryNumber=0;
}
void CLZWDecodeTable::InitLZWTable(void)
{
	ClearDecodeTable();
	m_pbContain=new BYTE*[4096];
	int iSize=sizeof(m_pbContain);
	//if(NULL==m_pbContain)
	//	AfxMessageBox("error new m_pbContain=BYTE*[4096]");
	for(int i=0;i<4096;i++)
	{
		m_pbContain[i]=NULL;
	}
	for(i=0;i<=255;i++)
	{
		m_pbContain[i]=new BYTE[1+2];
		*((WORD*)m_pbContain[i])=1;
		m_pbContain[i][2]=(BYTE)i;
	}
	m_dwTableEntryNumber=LZW_BEGIN_ENTRY;
}
BYTE* CLZWDecodeTable::GetMatchData(WORD wCode)
{
	return m_pbContain[wCode];
}
void CLZWDecodeTable::AddToChild(WORD wCode,BYTE *pbContain,int iLength)
{
	ASSERT(wCode<4096);
	if(m_pbContain[wCode])
		delete m_pbContain[wCode];
	m_pbContain[wCode]=new BYTE[iLength+2];
	*((WORD*)m_pbContain[wCode])=(WORD)iLength;
	memcpy(m_pbContain[wCode]+2,pbContain,iLength);
}

/*
class CLZWEncodeTable
*/
CLZWEncodeTable::CLZWEncodeTable(BOOL fInit)
{
	if(fInit)
		InitLZWTable();
	else
	{
		m_dwTableEntryNumber=0;
		m_EntryHead.pRightBrother=NULL;
		m_EntryHead.pChild=NULL;
	}
}
CLZWEncodeTable::~CLZWEncodeTable()
{
	ClearLZWTable();
}
void CLZWEncodeTable::ClearLZWTable(void)
{
	if(m_EntryHead.pChild==NULL)
		return;
	m_dwTableEntryNumber=0;
	int iRe=0;
	while(m_EntryHead.pChild)
	{
		RemoveFirstChild();
		iRe++;
		//printf("remove %d\n",++iRe);;
	}
}
void CLZWEncodeTable::RemoveFirstChild(void)
{
	PLZWENCODEENTRY pFirstChild=m_EntryHead.pChild;// this child will be removed
	if(pFirstChild->pChild)
	{
		m_EntryHead.pChild=pFirstChild->pChild;
		if(m_EntryHead.pChild->pRightBrother)
		{
			PLZWENCODEENTRY pRightBrother=FindRightBrother(m_EntryHead.pChild);
			pRightBrother->pRightBrother=pFirstChild->pRightBrother;
		}
		else
			(m_EntryHead.pChild)->pRightBrother=pFirstChild->pRightBrother;
		//delete pFirstChild;
	}
	else
		m_EntryHead.pChild=pFirstChild->pRightBrother;
	delete pFirstChild;
}
PLZWENCODEENTRY CLZWEncodeTable::FindRightBrother(PLZWENCODEENTRY pCurrent)
{
	PLZWENCODEENTRY pFind;
	pFind=pCurrent;
	while(pFind->pRightBrother)
	{
		pFind=pFind->pRightBrother;
	}
	return pFind;
}
void CLZWEncodeTable::InitLZWTable(void)
{// init the table ,it has 256 items code from 0 to 255
	ClearLZWTable();
	PLZWENCODEENTRY pEntryFirst=new LZWENCODEENTRY;
	pEntryFirst->wCode=(WORD)0;
	pEntryFirst->bLast=(BYTE)0;
	pEntryFirst->pRightBrother=pEntryFirst->pChild=NULL;
	m_EntryHead.pChild=pEntryFirst;
	m_EntryHead.pRightBrother=NULL;
	PLZWENCODEENTRY pPrev=pEntryFirst;
	for(int i=1;i<=255;i++)
	{// set the brother nodes
		PLZWENCODEENTRY pEntry=new LZWENCODEENTRY;
		pEntry->wCode=(WORD)i;
		pEntry->bLast=(BYTE)i;
		pEntry->pChild=pEntry->pRightBrother=NULL;
		pPrev->pRightBrother=pEntry;
		pPrev=pEntry;
	}
	m_dwTableEntryNumber=258;
	m_uNextCodeForUse=LZW_BEGIN_ENTRY;
}
PLZWENCODEENTRY CLZWEncodeTable::FindMatchChild(BYTE bChildLast,PLZWENCODEENTRY pCurrent)
{// return the find child entry
	if(pCurrent->pChild==NULL)
		return NULL;
	PLZWENCODEENTRY pChild=pCurrent->pChild;
	// pChild is the current's child
	// and all pChild's brother is the current's child
	while(pChild!=NULL)
	{
		if(pChild->bLast==bChildLast)
			return pChild;
		pChild=pChild->pRightBrother;
	}
	return NULL;
}
PLZWENCODEENTRY CLZWEncodeTable::AddToChild(BYTE bLast,PLZWENCODEENTRY pCurrent)
{
	ASSERT(pCurrent);
	PLZWENCODEENTRY pChild=new LZWENCODEENTRY;
	if(pChild==NULL)
	{
		int _j=0;
	}
	pChild->pChild=pChild->pRightBrother=NULL;
	pChild->bLast=bLast;
	pChild->wCode=(WORD)m_uNextCodeForUse;
	if(pChild->wCode==LZW_CLEAR_CODE)
	{
		int _i=0;
	}
	m_uNextCodeForUse++;
	m_dwTableEntryNumber++;
	pChild->pRightBrother=pCurrent->pChild;
	pCurrent->pChild=pChild;
	return pChild;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲视频一区二区在线| av色综合久久天堂av综合| 成人免费视频一区| 欧美日韩国产精品自在自线| 国产精品剧情在线亚洲| 麻豆一区二区在线| 在线观看视频91| 中文字幕五月欧美| 黄色精品一二区| 777奇米四色成人影色区| 亚洲欧美日韩国产中文在线| 国产成人免费在线观看不卡| 欧美一区二区三区在线看| 一区二区三区不卡在线观看| 99re热这里只有精品免费视频| 日韩美女天天操| 视频在线观看91| 欧美丝袜丝交足nylons| 亚洲精品国产精华液| av在线综合网| 国产精品乱子久久久久| 丁香桃色午夜亚洲一区二区三区| 日韩一区二区在线免费观看| 午夜视频在线观看一区二区| 欧美在线一二三四区| 亚洲精品久久7777| 色播五月激情综合网| 亚洲色欲色欲www| av午夜精品一区二区三区| 国产精品免费网站在线观看| 成人中文字幕合集| 国产精品欧美久久久久一区二区| 国产精品亚洲午夜一区二区三区| 精品国产凹凸成av人导航| 精品无人区卡一卡二卡三乱码免费卡 | 91精品国产综合久久福利软件| 一本到不卡免费一区二区| 国产精品视频免费| 国产高清精品网站| 中文无字幕一区二区三区| 国产成人精品在线看| 国产日韩欧美综合在线| 国产suv精品一区二区三区| 国产精品无码永久免费888| www.视频一区| 亚洲综合一二区| 欧美日韩国产片| 美女尤物国产一区| 亚洲精品一区二区三区四区高清| 国产精品538一区二区在线| 国产精品亲子伦对白| 99久久777色| 亚洲成人精品影院| 欧美亚洲综合在线| 亚洲在线观看免费视频| 7777精品伊人久久久大香线蕉最新版| 午夜精品福利一区二区蜜股av| 日韩一区二区三区av| 国产高清精品网站| 亚洲伊人伊色伊影伊综合网| 日韩欧美在线网站| 波多野结衣中文字幕一区二区三区| 亚洲欧美在线高清| 91精品国产福利在线观看| 精彩视频一区二区| 亚洲伦理在线精品| 精品91自产拍在线观看一区| 99久久精品久久久久久清纯| 亚洲h在线观看| 日本一区二区三区免费乱视频 | 国模一区二区三区白浆| 国产精品国产三级国产| 制服丝袜av成人在线看| 国产精品18久久久| 午夜精品久久一牛影视| 日本一区二区视频在线观看| 欧美日韩免费一区二区三区| 粉嫩一区二区三区在线看| 天天av天天翘天天综合网色鬼国产| 精品国产凹凸成av人网站| 在线免费观看日本一区| 国产99久久久国产精品潘金网站| 亚洲午夜久久久久久久久久久| 欧美激情综合五月色丁香小说| 欧美美女激情18p| 91在线精品一区二区| 国产一区二区三区四区五区美女 | 色成年激情久久综合| 国产一区二区三区黄视频| 日韩在线一区二区三区| 亚洲视频免费观看| 国产视频亚洲色图| 日韩精品中文字幕一区| 欧美欧美欧美欧美首页| 色综合久久中文综合久久牛| 成人视屏免费看| 国产乱码字幕精品高清av| 蜜桃视频在线一区| 无吗不卡中文字幕| 亚洲综合图片区| 亚洲天堂免费在线观看视频| 亚洲国产精品成人综合色在线婷婷 | 国产一区二区三区不卡在线观看| 一区二区三区日韩精品| 亚洲一级不卡视频| 热久久久久久久| 国产露脸91国语对白| 成人久久视频在线观看| 欧美丝袜丝交足nylons| 精品卡一卡二卡三卡四在线| 中文字幕电影一区| 亚洲成av人片在线| 国产精品一区二区黑丝| 色成年激情久久综合| 精品国产精品网麻豆系列| 亚洲丝袜美腿综合| 蓝色福利精品导航| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美在线色视频| 欧美电影免费观看高清完整版| 夜夜精品浪潮av一区二区三区| 蜜臀国产一区二区三区在线播放 | 国产伦理精品不卡| 色婷婷综合久久| 欧美岛国在线观看| 亚洲主播在线播放| 国产成人精品网址| 制服视频三区第一页精品| 亚洲视频在线一区| 国产在线播放一区二区三区| 欧美性生交片4| 国产精品无人区| 开心九九激情九九欧美日韩精美视频电影| 成人综合婷婷国产精品久久| 91精品国产色综合久久不卡电影| 综合欧美亚洲日本| 国产成人a级片| 日韩欧美资源站| 亚洲色图在线播放| 国产成人在线影院| 日韩视频中午一区| 亚洲高清免费在线| av在线不卡网| 国产欧美日韩另类一区| 免费人成在线不卡| 欧美日韩成人综合天天影院| 亚洲三级电影网站| 99国产精品国产精品毛片| 久久理论电影网| 美日韩一区二区| 3d成人h动漫网站入口| 亚洲永久精品大片| 国产成人h网站| 色呦呦一区二区三区| 日韩欧美区一区二| 亚洲一区二区三区自拍| av在线播放不卡| 中文字幕乱码久久午夜不卡 | 欧美中文字幕久久| 中文字幕日韩av资源站| 国产成人在线视频网站| 久久女同性恋中文字幕| 国产一区二区三区美女| 精品国产一区二区三区久久久蜜月 | 欧美日韩国产精品自在自线| 亚洲综合区在线| 在线免费av一区| 亚洲在线一区二区三区| 欧美亚洲高清一区| 国产不卡在线视频| 欧美视频一区二区| 一区二区三区高清在线| 色婷婷久久久久swag精品| 国产精品灌醉下药二区| av网站一区二区三区| 综合激情成人伊人| 欧洲一区二区三区在线| 亚洲国产成人高清精品| 91精品麻豆日日躁夜夜躁| 美腿丝袜亚洲一区| 久久久精品综合| 不卡一区在线观看| 一区二区三区在线视频观看| 欧美日韩不卡一区| 久久99国内精品| 国产亚洲成av人在线观看导航| 成人爱爱电影网址| 亚洲制服丝袜av| 日韩欧美亚洲另类制服综合在线| 国内精品伊人久久久久影院对白| 久久色中文字幕| 色综合天天做天天爱| 婷婷激情综合网| 久久亚洲精精品中文字幕早川悠里| 成人久久久精品乱码一区二区三区| 亚洲欧美日韩综合aⅴ视频| 欧美日韩成人综合在线一区二区| 久久草av在线| 亚洲欧美一区二区久久| 欧美一区二区三区免费观看视频|