You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#defineSTR"Huffman coding uses a specific method for choosing the representation for each symbol, resulting in a prefix code (sometimes called 'prefix-free codes', that is, the bit string representing some particular symbol is never a prefix of the bit string representing any other symbol) that expresses the most common source symbols using shorter strings of bits than are used for less common source symbols. Huffman was able to design the most efficient compression method of this type: no other mapping of individual source symbols to unique strings of bits will produce a smaller average output size when the actual symbol frequencies agree with those used to create the code."
intmain(void)
{
usingnamespacealg;
HuffTree tree(STR);
char codes[strlen(STR)];
uint32_t length;
printf("encoding message: \n%s\n", STR);
printf("<<< before huffman coding : length:%lu bytes\n", strlen(STR));
memset(codes, 0, sizeof(codes));
length = tree.encode(STR, codes);
printf(">>> after huffman coding : length:%u bytes\n", length/8);