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

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

?? huf_class.h

?? huffman_template_algorithm.zip
?? H
?? 第 1 頁 / 共 2 頁
字號:
// ==============================================================
//
//  Copyright (c) 1999-2001 by Alex Vinokur.  This work and all works
//  derived from it may be copied and modified without any
//  restrictions other than that a copy of this copyright notice
//  must be included in any copy of this work or any derived work.
//
// ==============================================================

///////////////////////////////////////

#ifndef huf_class_H
#define huf_class_H

///////////////////////////////////////

static char id_huf_class_H[] = "@(#)## n-ary Huffman Template Algorithm ## Author : Alex Vinokur ## "__FILE__;

// ##############################################################
// =============================
//  n-ary Huffman Template Algorithm
//  The algorithm (program) contains the following files :
//  - huf_service.H
//  - huf_class.H
//  - huf_methods.H
//  - huf_main.C
// =============================
//
//  FILE : huf_class.H
//
//  AUTHOR : Alex Vinokur
//
//  DESCRIPTION :
//         Definition of the following template classes :
//         ----------------------------------------------
//         - Cell                         <SYMBOL, WEIGHT>
//         - Node                         <SYMBOL, WEIGHT>
//         - InternalNode                 <SYMBOL, WEIGHT>
//         - TerminalNode                 <SYMBOL, WEIGHT>
//         - BasicHuffmanTree             <SYMBOL, WEIGHT, ARY>
//         - LoadedHuffmanTree            <SYMBOL, WEIGHT, ARY>
//         - DriedHuffmanTree             <WEIGHT, ARY>
//         ----------------------------------------------
//
//         Definition and implementation of the following template classes :
//         ----------------------------------------------
//         - lessNodesCompare             <SYMBOL, WEIGHT>
//         - lessNodesCorrectingCompare01 <SYMBOL, WEIGHT>
//         - lessNodesCorrectingCompare02 <SYMBOL, WEIGHT>
//         - lessCellsCompare             <SYMBOL, WEIGHT>
//         - lessVectorsAlterCompare      <T>
//         ----------------------------------------------
//
//  DATE           VERSION
//  ----           -------
//  Aug-26-1999    NHTA 1.0
//  Jul-05-2001    NHTA 1.1
//  Sep-11-2001    NHTA 1.2
//
// ##############################################################

//======================
#include "huf_service.H"
//======================

//#######################################################
//##### PART : DEFINES & CONSTANTS ######################
//#######################################################

//#define       SHOW_HUFFMAN_PROCESS_STATUS


//#######################################################
//##### PART : DECLARATIONS #############################
//#######################################################

template <typename SYMBOL, typename WEIGHT>
class Cell;

template <typename SYMBOL, typename WEIGHT>
class Node;

template <typename SYMBOL, typename WEIGHT>
class InternalNode ;

template <typename SYMBOL, typename WEIGHT>
class TerminalNode ;

template <typename SYMBOL, typename WEIGHT, unsigned int ARY>
class BasicHuffmanTree;

template <typename SYMBOL, typename WEIGHT, unsigned int ARY = 2>
class LoadedHuffmanTree;

template <typename WEIGHT, unsigned int ARY = 2>
class DriedHuffmanTree;

template <typename SYMBOL, typename WEIGHT>
class lessNodesCompare;

template <typename SYMBOL, typename WEIGHT>
class lessNodesCorrectingCompare01;

template <typename SYMBOL, typename WEIGHT>
class lessNodesCorrectingCompare02;

template <typename SYMBOL, typename WEIGHT>
class lessCellsCompare;

template <typename T1>
class lessVectorsAlterCompare;




//#######################################################
//##### PART : template class Cell ######################
//############ Definition ###############################
//#######################################################

//----------- template class Cell -----------
template <typename SYMBOL, typename WEIGHT>
class Cell
{
template <typename S1, typename W1, unsigned int A1> friend class BasicHuffmanTree;

friend class TerminalNode<SYMBOL, WEIGHT>;
friend class lessCellsCompare<SYMBOL, WEIGHT>;
friend istream& operator>> <SYMBOL, WEIGHT> (istream &str_o, Cell<SYMBOL, WEIGHT>& instance_i);

        private :
                SYMBOL  data_symbol_;
                WEIGHT  data_weight_;
                unsigned int    symbol_original_index_;
                vector<CODE>    symbol_path_;
        protected :

        public :
                Cell () {}
                Cell (
                        const SYMBOL&   data_symbol_i,
                        const WEIGHT&   data_weight_i,
                        unsigned int    symbol_original_index_i = UINT_MAX
                        );
                virtual ~Cell () {}

};




//#######################################################
//##### PART : template class Node ######################
//############ Definition ###############################
//#######################################################

//----------- template class Node -----------
template <typename SYMBOL, typename WEIGHT>
class Node
{
template <typename S1, typename W1, unsigned int A1> friend class BasicHuffmanTree;

friend class InternalNode<SYMBOL, WEIGHT>;
friend class lessNodesCompare<SYMBOL, WEIGHT>;
friend class lessNodesCorrectingCompare01<SYMBOL, WEIGHT>;
friend class lessNodesCorrectingCompare02<SYMBOL, WEIGHT>;
friend ostream& operator<< <SYMBOL, WEIGHT> (ostream &str_o, const Node<SYMBOL, WEIGHT>& instance_i);

typedef map<SYMBOL, WEIGHT, less<SYMBOL> > Node_MAP_SYMBOLS;

        private :
        protected :
                Node_MAP_SYMBOLS        mapSymbols_;
                WEIGHT                  weight_;
                bool                    is_TerminalNode_;
                int                     absorbtion_stage_;
                int                     creation_stage_;

        public :
                Node () {weight_ = WEIGHT (); absorbtion_stage_ = -2; creation_stage_ = -1;}
                virtual ~Node () {}
};




//#######################################################
//##### PART : template class InternalNode ##############
//############ Definition ###############################
//#######################################################

//----------- template class InternalNode -----------
template <typename SYMBOL, typename WEIGHT>
class InternalNode : public Node<SYMBOL, WEIGHT>
{
template <typename S1, typename W1, unsigned int A1> friend class BasicHuffmanTree;
        private :
                vector<Node<SYMBOL, WEIGHT>*>   arc_;
        protected :
                void addNode (Node<SYMBOL, WEIGHT> const *  const ptr2_i);
        public :
                InternalNode () {is_TerminalNode_ = false;}
                ~InternalNode () {}
};




//#######################################################
//##### PART : template class TerminalNode ##############
//############ Definition ###############################
//#######################################################

//----------- template class TerminalNode -----------
template <typename SYMBOL, typename WEIGHT>
class TerminalNode : public Node<SYMBOL, WEIGHT>
{
template <typename S1, typename W1, unsigned int A1> friend class BasicHuffmanTree;
        private :

        protected :
        public :
                TerminalNode () {is_TerminalNode_ = true;}
                TerminalNode (const Cell<SYMBOL, WEIGHT>& cell_i);
                ~TerminalNode () {}
};



//#######################################################
//##### PART : template class less... ###################
//#######################################################

//#######################################################
//----------- template class lessNodesCompare -----------
template <typename SYMBOL, typename WEIGHT>
class lessNodesCompare
{
public:
        bool operator()(
                        const Node<SYMBOL, WEIGHT>* const left_i,
                        const Node<SYMBOL, WEIGHT>* const right_i
                        )
        {
                return (left_i->weight_ < right_i->weight_);
        }
};


//#######################################################
//------- template class lessNodesCorrectingCompare01 -----
template <typename SYMBOL, typename WEIGHT>
class lessNodesCorrectingCompare01
{
public:
        bool operator()(
                        const Node<SYMBOL, WEIGHT>* const left_i,
                        const Node<SYMBOL, WEIGHT>* const right_i
                        )
        {
                return ((left_i->weight_ == right_i->weight_) ? (!(left_i->is_TerminalNode_)) : (left_i->weight_ < right_i->weight_));
        }
};



//#######################################################
//------- template class lessNodesCorrectingCompare02 -----
template <typename SYMBOL, typename WEIGHT>
class lessNodesCorrectingCompare02
{
public:
        bool operator()(
                        const Node<SYMBOL, WEIGHT>* const left_i,
                        const Node<SYMBOL, WEIGHT>* const right_i
                        )
        {
                return ((left_i->is_TerminalNode_ == right_i->is_TerminalNode_) ? (left_i->weight_ < right_i->weight_) : (!(left_i->is_TerminalNode_)));
        }
};


//#######################################################
//----------- template class lessCellsCompare -----------
template <typename SYMBOL, typename WEIGHT>
class lessCellsCompare
{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色av综合在线| 欧美一级黄色录像| 欧美理论在线播放| 久久久噜噜噜久久中文字幕色伊伊| 亚洲欧美在线视频观看| 毛片av一区二区| 精品视频在线视频| 亚洲人吸女人奶水| 国产精品小仙女| 日韩精品一区二区三区四区| 亚洲国产精品久久久久秋霞影院| av激情综合网| 久久精品在线观看| 精品制服美女丁香| 91精品国产美女浴室洗澡无遮挡| 樱桃国产成人精品视频| 成人av在线观| 国产午夜亚洲精品羞羞网站| 六月丁香婷婷久久| 国产人妖乱国产精品人妖| 在线观看一区日韩| 中文欧美字幕免费| 国产麻豆精品视频| 2024国产精品视频| 久久精品久久精品| 日韩视频免费观看高清完整版在线观看 | 国产精品久久久久久久久免费相片| 奇米一区二区三区av| 日韩一区二区三区视频在线| 午夜精品久久久久| 欧美男人的天堂一二区| 亚洲成av人**亚洲成av**| 欧美日韩中文一区| 日韩高清欧美激情| 91精品国产91久久久久久一区二区| 亚洲国产日产av| 欧美久久高跟鞋激| 美腿丝袜亚洲色图| 久久综合一区二区| 国产**成人网毛片九色| 中文字幕av一区二区三区| 99热精品国产| 亚洲一区在线视频观看| 51久久夜色精品国产麻豆| 免费成人av在线| 久久综合中文字幕| gogo大胆日本视频一区| 亚洲激情自拍偷拍| 在线不卡免费av| 国内久久婷婷综合| 一区视频在线播放| 欧美色电影在线| 国产最新精品免费| 国产精品天干天干在线综合| 一本一道久久a久久精品| 日韩高清不卡一区| 久久久亚洲综合| 欧美羞羞免费网站| 久久国产成人午夜av影院| 中文字幕乱码日本亚洲一区二区| 91蜜桃传媒精品久久久一区二区| 亚洲成在线观看| 国产日韩在线不卡| 欧美日韩精品一区二区三区四区 | 热久久久久久久| 成人av免费网站| 亚洲三级久久久| 欧美日本精品一区二区三区| 国产在线精品免费| 亚洲蜜臀av乱码久久精品蜜桃| 制服丝袜中文字幕亚洲| 成人精品小蝌蚪| 日本强好片久久久久久aaa| 欧美韩国日本不卡| 欧美高清dvd| 丁香激情综合国产| 蜜桃在线一区二区三区| 国产精品久久久久久久久免费樱桃 | 不卡视频一二三| 国产剧情在线观看一区二区| 国产精品久久网站| 欧美高清激情brazzers| 不卡欧美aaaaa| 久久97超碰国产精品超碰| 亚洲午夜一区二区| 国产欧美日本一区二区三区| 日韩一区二区三区四区| 一本大道av伊人久久综合| 国精品**一区二区三区在线蜜桃| 亚洲在线免费播放| 综合久久国产九一剧情麻豆| 久久精品水蜜桃av综合天堂| 欧美日韩一级大片网址| 91在线免费播放| 国产精品白丝jk黑袜喷水| 老司机午夜精品99久久| 亚洲午夜一区二区三区| 亚洲精选视频免费看| 中文字幕久久午夜不卡| 久久日韩粉嫩一区二区三区| 日韩欧美精品在线视频| 久久精品夜夜夜夜久久| 日本道免费精品一区二区三区| 丁香天五香天堂综合| 国产一区二区三区视频在线播放| 日韩黄色一级片| 午夜精品一区二区三区电影天堂| 亚洲丝袜美腿综合| 亚洲欧美色综合| 中文字幕一区二区三| 国产精品国产三级国产有无不卡| 久久精品在线观看| 国产日韩精品一区二区三区| 欧美精品一区二区久久久| 日韩欧美一二区| 欧美r级在线观看| 精品伦理精品一区| 久久久精品黄色| 国产精品美女久久久久aⅴ国产馆| 久久人人97超碰com| 久久精品日韩一区二区三区| 国产午夜精品一区二区三区视频| 久久综合视频网| 国产视频一区二区三区在线观看| 久久久91精品国产一区二区三区| 中文字幕精品一区| 综合婷婷亚洲小说| 亚洲午夜激情网页| 日韩 欧美一区二区三区| 另类专区欧美蜜桃臀第一页| 国产精品一区二区三区乱码| 成人少妇影院yyyy| 在线观看国产日韩| 日韩午夜中文字幕| 久久久久青草大香线综合精品| 国产三级久久久| 亚洲精品视频自拍| 日精品一区二区三区| 狠狠色狠狠色综合系列| 成人午夜av电影| 国产精品午夜在线| 亚洲精品一二三| 美国三级日本三级久久99 | 不卡的电影网站| 欧美精三区欧美精三区| 久久久久88色偷偷免费| 亚洲精品日韩一| 蜜臀av一区二区在线免费观看| 丰满放荡岳乱妇91ww| 91国产精品成人| 久久综合久久99| 亚洲国产成人高清精品| 国产九色精品成人porny | 99久久综合狠狠综合久久| 在线看日韩精品电影| 精品国精品国产| 亚洲三级在线免费| 国产一区二区视频在线播放| 色悠久久久久综合欧美99| 欧美videos大乳护士334| 艳妇臀荡乳欲伦亚洲一区| 精品系列免费在线观看| 色婷婷久久久亚洲一区二区三区| 日韩欧美国产一区在线观看| 亚洲欧美国产三级| 久久国产乱子精品免费女| 在线观看网站黄不卡| 久久精品在线观看| 日本欧美一区二区三区| 91免费视频观看| 26uuu精品一区二区| 性做久久久久久免费观看| 成人精品gif动图一区| 欧美电视剧免费全集观看| 亚洲国产精品尤物yw在线观看| www.视频一区| 国产网站一区二区| 麻豆国产欧美日韩综合精品二区| 95精品视频在线| 日本一二三不卡| 国产福利精品导航| 精品粉嫩aⅴ一区二区三区四区| 亚洲国产欧美在线| 色婷婷av一区二区三区软件| 国产精品视频观看| 丁香婷婷综合网| 国产日韩高清在线| 激情综合色播激情啊| 欧美videos大乳护士334| 日韩国产欧美视频| 69堂亚洲精品首页| 亚洲超碰97人人做人人爱| 欧美日韩一级片在线观看| 一区二区三区加勒比av| 在线观看www91| 亚洲二区在线视频| 欧美日韩不卡在线| 天天综合网 天天综合色| 欧美色综合网站| 亚洲成人手机在线|