91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

自適應(yīng)霍夫曼編碼的C++版本簡單實(shí)現(xiàn) class AdaptiveTree { public: AdaptiveTree(int rootNum); AdaptiveTree(int rootNum, string str); void swap(int first, int second); // swap two nodes of the tree void initalCode(); // initializing the data string char2code(unsigned char letter); // locate the character in the tree with its corresponding binary string and return the string string char2binary(unsigned char letter); // translating the character to the 8-bit binary string unsigned char binary2char(string bin); // translating the binary string: bin to the corresponding character int spawn(unsigned char letter); // add a new character to the original tree void updateTree(unsigned char newchar); // update the tree int highestInBlock(int count); // return the highest node to be exchanged void setString(string str); // string decodingStr() const; void encoding(); string decoding(); unsigned char code2char(string bincode); static int size(); string binStr() const; // return the binary string of string: tempString private: void run(); int findchar(unsigned char letter ); // locate the letter in the tree string tempString; //temp string to be encoded needed to be stored here string deStr;// used for storing the decoding string string bin; // used for storing the result of encoding process /* Adaptive Tree data members */ HuffmanTree *tree; int root; /* Adaptive Tree constants */ static int ALPH_SIZE; // size of the alphabet static unsigned char none; // not a unsigned character static unsigned char NYT; // Not Yet transmitted code };

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?

#define?PSEUDO_EOF?3

using?namespace?std;

struct?HuffmanTree{
unsigned?char?letter;?????//?the?unsigned?character?of?each?code
int??count;??????//?frequency?of?each?unsigned?character
int?left;????????//?the?left?child?of?each?node
int?right;????????//?the?right?child?of?each?node
int?parent;???????//?the?parent?of?each?node

public:
bool?operator==(const?HuffmanTree&?node)?const;
bool?operator!=(const?HuffmanTree&?node)?const;
};

bool?HuffmanTree::operator==(const?HuffmanTree&?node)?const
{
return?node.count?==?count?&&?node.letter?==?letter?&&?node.left?==?left?&&?node.right?==?right?&&?node.parent?==?parent;
}

bool?HuffmanTree::operator!=(const?HuffmanTree&?node)?const
{
return?node.count?!=?count?||?node.letter?!=?letter?||?node.left?!=?left?||?node.right?!=?right?||?node.parent?!=?parent;
}


class?AdaptiveTree?{

public:
AdaptiveTree(int?rootNum);
AdaptiveTree(int?rootNum?string?str);
void?swap(int?first?int?second); //?swap?two?nodes?of?the?tree
void?initalCode(); //?initializing?the?data
string?char2code(unsigned?char?letter); //?locate?the?character?in?the?tree?with?its?corresponding?binary?string?and?return?the?string
string?char2binary(unsigned?char?letter); //?translating?the?character?to?the?8-bit?binary?string
unsigned?char?binary2char(string?bin); //?translating?the?binary?string:?bin?to?the?corresponding?character
int?spawn(unsigned?char?letter); //?add?a?new?character?to?the?original?tree
void?updateTree(unsigned?char?newchar); //?update?the?tree
int?highestInBlock(int?count); //?return?the?highest?node?to?be?exchanged
void?setString(string?str); //?
string?decodingStr()?const;
void?encoding();
string?decoding();
unsigned?char?code2char(string?bincode);
?
static?int?size();

string?binStr()?const;?//?return?the?binary?string?of?string:?tempString
private:
void?run();
int?findchar(unsigned?char?letter?); //?locate?the?letter?in?the?tree
string?tempString; //temp?string?to?be?encoded?needed?to?be?stored?here

string?deStr;//?used?for?storing?the?decoding?string
string?bin;?//?used?for?storing?the?result?of?encoding?process
/*?Adaptive?Tree?data?members?*/?
HuffmanTree?*tree;
????int?root;

????/*?Adaptive?Tree?constants?*/
static?int?ALPH_SIZE;???????//?size?of?the?alphabet
????static?unsigned?char?none;??????//?not?a?unsigned?character
????static?unsigned?char?NYT;??????//?Not?Yet?transmitted?code???
};

int?AdaptiveTree::ALPH_SIZE?=?1024;
unsigned?char?AdaptiveTree::NYT?=?255;
unsigned?char?AdaptiveTree::none?=?254;

string?AdaptiveTree::decodingStr()?const
{
return?deStr;
}

unsigned?char?AdaptiveTree::binary2char(string?bin)
{
int?n?=?bin.length();

int?tempchar=0i;
for?(i=0;?i {
tempchar?+=?(bin[i]?-?‘0‘)?*?(int)pow(2i);?
}
return?(unsigned?char)(tempchar);
}


int?Adaptive

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件??????11778??2009-05-22?17:11??adaptiveHuffmanCoding.cpp

-----------?---------??----------?-----??----

????????????????11778????????????????????1


評論

共有 條評論