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

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

?? huffman_template_algorithm.html

?? huffman_template_algorithm.zip
?? HTML
?? 第 1 頁 / 共 5 頁
字號:
//##### 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;



<a NAME="label_Cell_class"></a>
//#######################################################
//##### PART : template class <b><a href="#label_Cell_method">Cell</a></b> ######################
//############ <font color="FF00FF"><b>Definition</b></font> ###############################
//#######################################################

//----------- template class Cell -----------
template &lt;typename SYMBOL, typename WEIGHT&gt;
class Cell
{
template &lt;typename S1, typename W1, unsigned int A1&gt; friend class BasicHuffmanTree;

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

        private :
                SYMBOL  data_symbol_;
                WEIGHT  data_weight_;
                unsigned int    symbol_original_index_;
                vector&lt;CODE&gt;    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 () {}

};



<a NAME="label_Node_class"></a>
//#######################################################
//##### PART : template class <b><a href="#label_Node_method">Node</a></b> ######################
//############ <font color="FF00FF"><b>Definition</b></font> ###############################
//#######################################################

//----------- template class Node -----------
template &lt;typename SYMBOL, typename WEIGHT&gt;
class Node
{
template &lt;typename S1, typename W1, unsigned int A1&gt; friend class BasicHuffmanTree;

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

typedef map&lt;SYMBOL, WEIGHT, less&lt;SYMBOL&gt; &gt; 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 () {}
};



<a NAME="label_InternalNode_class"></a>
//#######################################################
//##### PART : template class <b><a href="#label_InternalNode_method">InternalNode</a></b> ##############
//############ <font color="FF00FF"><b>Definition</b></font> ###############################
//#######################################################

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



<a NAME="label_TerminalNode_class"></a>
//#######################################################
//##### PART : template class <b><a href="#label_TerminalNode_method">TerminalNode</a></b> ##############
//############ <font color="FF00FF"><b>Definition</b></font> ###############################
//#######################################################

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

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



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

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


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



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


//#######################################################
//----------- template class lessCellsCompare -----------
template &lt;typename SYMBOL, typename WEIGHT&gt;
class lessCellsCompare
{
public:
        bool operator()(
                        const Cell&lt;SYMBOL, WEIGHT&gt;& left_i,
                        const Cell&lt;SYMBOL, WEIGHT&gt;& right_i
                        )
        {

                return (left_i.data_weight_ &lt; right_i.data_weight_);
        }
};




//#######################################################
//----------- template class lessVectorsAlterCompare -----------
template &lt;typename T1&gt;
class lessVectorsAlterCompare
{
public:
        bool operator()(
                        const vector&lt;T1&gt;&       left_i,
                        const vector&lt;T1&gt;&       right_i
                        )
        {
                if (left_i.size () &lt; right_i.size ())
                {
                        return true;
                }

                if (left_i.size () &gt; right_i.size ())
                {
                        return false;
                }

                return (left_i &lt; right_i);
        }
};



<a NAME="label_BasicHuffmanTree_class"></a>
//#######################################################
//##### PART : template class <b><a href="#label_BasicHuffmanTree_method">BasicHuffmanTree</a></b> ##########
//############ <font color="FF00FF"><b>Definition</b></font> ###############################
//#######################################################


//#######################################################
//----------- template class BasicHuffmanTree -----------
template &lt;typename SYMBOL, typename WEIGHT, unsigned int ARY&gt;
class BasicHuffmanTree
{
typedef map&lt;SYMBOL, Cell&lt;SYMBOL, WEIGHT&gt;, less&lt;SYMBOL&gt; &gt; Tree_MAP_SYMBOLS;
typedef map&lt;vector&lt;CODE&gt;, SYMBOL, less&lt;vector&lt;CODE&gt; &gt; &gt; Tree_MAP_HUFFMAN_DECODING;

        private :
                Tree_MAP_SYMBOLS                mapAlphabet_;
                Tree_MAP_HUFFMAN_DECODING       mapHuffmanCodes_;
                InternalNode&lt;SYMBOL, WEIGHT&gt;    rootNode_;
                vector&lt;vector&lt;CODE&gt; &gt;           vectorHuffmanCodes_;


                void    createAllTerminalNodes (
                                const vector&lt;Cell&lt;SYMBOL, WEIGHT&gt; &gt;&    data_vector_i,
                                vector&lt;Node&lt;SYMBOL, WEIGHT&gt;*&gt;&          vectorHuffmanProcess_i
                                );
                void    createInternalNode (
                                vector&lt;Node&lt;SYMBOL, WEIGHT&gt;*&gt;&          vectorHuffmanProcess_i,
                                int                                     cur_stage_i
                                );

                void    createHuffmanTree (
                                vector&lt;Node&lt;SYMBOL, WEIGHT&gt;*&gt;&          vectorHuffmanProcess_i
                                );

                void    doBeautyTreatment (
                                vector&lt;Node&lt;SYMBOL, WEIGHT&gt;*&gt;&          vectorHuffmanProcess_i
                                );


                void    storeHuffmanCodes ();


                bool            encodeOneSymbol (
                                        const SYMBOL&   symbol_i,
                                        vector&lt;CODE&gt;&   path_o)
                                        const;


                bool            decodeOneSymbol (
                                        const vector&lt;CODE&gt;&     encoded_msg_i,
                                        unsigned int&           cur_start_position_io,
                                        unsigned int&           cur_symbol_number_io,
                                        vector&lt;CODE&gt;&           cur_symbol_code_o,
                                        SYMBOL&                 cur_symbol_value_o
                                        ) const;

                bool            decodeOneSymbol (
                                        const vector&lt;CODE&gt;&     encoded_symbol_code_i,
                                        SYMBOL&                 decoded_symbol_value_o
                                        ) const;

                bool            testAllCodes (bool show_i = false) const;

                void            showHuffmanProcessStatus (
                                        vector&lt;Node&lt;SYMBOL, WEIGHT&gt;*&gt;&  vectorHuffmanProcess_i,
                                        int                             cur_stage_i = 0,
                                        const string&                   msg_i = string ()
                                        ) const;

                static void     print_show_title_S (
                                        const string&   spaces_offset_i,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线观看视频在线| 成人avav影音| 一区二区在线观看免费| 久久久久久久综合色一本| 欧美日韩国产不卡| 91黄色免费网站| www.欧美亚洲| www.性欧美| 粉嫩在线一区二区三区视频| 国产一区二区美女| 日本特黄久久久高潮| 亚洲电影视频在线| 午夜私人影院久久久久| 夜夜亚洲天天久久| 亚洲成人免费观看| 亚洲线精品一区二区三区八戒| 一区二区高清免费观看影视大全| 中文字幕一区二区日韩精品绯色| 国产精品久久久久四虎| 国产精品麻豆网站| 成人免费在线播放视频| 国产精品国产三级国产三级人妇| 国产精品美女久久久久久久网站| 国产精品欧美一区喷水| 欧美激情在线一区二区三区| 国产精品福利在线播放| 亚洲色图丝袜美腿| 亚洲自拍另类综合| 秋霞成人午夜伦在线观看| 麻豆成人免费电影| 成人黄色av网站在线| 91免费观看视频在线| 欧美午夜精品免费| 精品免费日韩av| 国产精品嫩草影院av蜜臀| 一区二区日韩av| 麻豆91精品91久久久的内涵| 国产99久久久国产精品潘金网站| av电影天堂一区二区在线| 欧美三级视频在线观看| 欧美videos中文字幕| 亚洲天堂成人在线观看| 日韩和欧美的一区| 粉嫩av亚洲一区二区图片| 91视频91自| 欧美电影免费观看高清完整版在| 亚洲国产激情av| 五月天精品一区二区三区| 福利一区二区在线| 欧美视频在线播放| 国产精品天美传媒沈樵| 午夜精品一区二区三区免费视频 | 久久久久国产精品麻豆| 亚洲免费观看高清完整版在线| 性做久久久久久免费观看欧美| 国产激情视频一区二区在线观看 | 亚洲一区二区三区中文字幕在线| 日本不卡高清视频| 成人在线视频一区二区| 日韩欧美国产午夜精品| 亚洲日本韩国一区| 国产美女精品人人做人人爽| 欧美年轻男男videosbes| 国产精品久久久久久久久快鸭| 久久精品国产精品亚洲精品| 欧美在线综合视频| 亚洲国产经典视频| 国产一区视频导航| 欧美一级黄色大片| 午夜欧美视频在线观看| 一本到一区二区三区| 日本一区二区三区四区| 免费在线观看视频一区| 欧美美女喷水视频| 亚洲免费观看高清在线观看| 成人黄页在线观看| 久久香蕉国产线看观看99| 久久精品久久综合| 91精品国产综合久久久久久| 亚洲另类在线视频| 91免费精品国自产拍在线不卡| 国产日韩v精品一区二区| 精品制服美女丁香| 日韩一区二区三区在线| 一区二区三区蜜桃| 99精品国产一区二区三区不卡 | 国产成人av影院| 精品国产伦一区二区三区观看体验| 亚洲成a人片综合在线| 91成人看片片| 亚洲图片有声小说| 欧美精品在线观看播放| 日韩综合小视频| 欧美一区二区三区不卡| 天堂在线一区二区| 欧美日韩国产123区| 天天色综合成人网| 欧美xxxx老人做受| 国产aⅴ精品一区二区三区色成熟| 久久嫩草精品久久久精品一| 国内精品第一页| 2020国产精品| 99久久夜色精品国产网站| 亚洲欧美视频在线观看视频| 在线影院国内精品| 午夜电影网一区| 欧美mv和日韩mv的网站| 国产成人精品亚洲午夜麻豆| 亚洲视频一区二区在线观看| 在线视频国内一区二区| 肉肉av福利一精品导航| 久久久久久久久一| 91婷婷韩国欧美一区二区| 亚洲国产另类av| 精品久久一区二区| 97久久精品人人做人人爽50路| 亚洲一区二三区| 日韩欧美亚洲一区二区| 成人a级免费电影| 亚洲福利一区二区三区| 欧美刺激午夜性久久久久久久| 粉嫩av一区二区三区| 亚洲一区二区三区免费视频| 日韩欧美一二三区| 色综合久久天天| 精品一二三四区| 亚洲一卡二卡三卡四卡五卡| 亚洲精品在线免费播放| 在线观看亚洲一区| 国产成人免费视频| 亚洲18女电影在线观看| 最新中文字幕一区二区三区| 欧美一区二区三区在| 成人免费视频一区| 久久福利视频一区二区| 亚洲午夜精品在线| 国产精品毛片久久久久久久| 91精品国产色综合久久不卡电影 | 成人精品小蝌蚪| 免费观看日韩电影| 亚洲午夜成aⅴ人片| 亚洲欧洲性图库| 久久精品视频一区二区| 91麻豆精品国产91久久久久久久久 | 国产亚洲精品中文字幕| 欧美精品99久久久**| 色偷偷久久一区二区三区| 岛国av在线一区| 国产一区二区三区黄视频| 奇米影视在线99精品| 亚洲一区二区三区精品在线| 亚洲色图制服诱惑 | 欧美大肚乱孕交hd孕妇| 欧美性大战xxxxx久久久| 不卡电影免费在线播放一区| 国产福利精品一区| 久久99热99| 久久99蜜桃精品| 免费美女久久99| 亚欧色一区w666天堂| 亚洲综合无码一区二区| 亚洲女性喷水在线观看一区| 亚洲欧洲三级电影| 亚洲天堂精品视频| 一区二区三区四区中文字幕| 亚洲欧美日韩在线播放| 中文字幕制服丝袜成人av| 亚洲国产成人午夜在线一区| 日本一二三不卡| 亚洲日本青草视频在线怡红院| 中文字幕日韩av资源站| 亚洲天堂2016| 夜夜操天天操亚洲| 五月天欧美精品| 蜜桃精品视频在线观看| 国产麻豆精品在线观看| 国产99久久精品| 91日韩一区二区三区| 欧美精品在线一区二区三区| 日韩一区二区三| 久久久久久久久97黄色工厂| 国产精品久久久久精k8| 亚洲三级电影全部在线观看高清| 一片黄亚洲嫩模| 日韩avvvv在线播放| 国产一区二区三区在线看麻豆| 国产麻豆午夜三级精品| 一本大道久久精品懂色aⅴ| 欧美影片第一页| 日韩欧美区一区二| 国产精品国产三级国产三级人妇 | 亚洲精品久久久久久国产精华液| 一区二区三区**美女毛片| 免费在线观看一区二区三区| 国产成人午夜片在线观看高清观看| www.综合网.com| 6080日韩午夜伦伦午夜伦| 欧美激情在线观看视频免费| 一区二区理论电影在线观看| 麻豆精品国产传媒mv男同|