huffman

How could I do frequency analysis on a string without using a switch.

I am working a school project to implement a Huffman code on text. The first part of course requires a frequency analysis on the text. Is there a better way aside from a giant switch and an array of counters to do it? ie: int[] counters for(int i = 0; i <inString.length(); i++) { switch(inString[i]) case 'A': counters[0]++; ...

After I build my Huffman tree the root's weight is 700k when I've read through 5megs of data.

// Huffman Tree.cpp #include "stdafx.h" #include <iostream> #include <string>//Necessary to do any string comparisons #include <fstream> #include <iomanip> #include <cstdlib>//for exit() function using namespace std; class BinaryTree{ private: struct treenode{ char data; int weight; treenode *LChild; ...

How would one handle bits from a file?

ifstream inStream; inStream.open(filename.c_str(), fstream::binary); if(inStream.fail()){ cout<<" Error in opening file: "<<filename; exit(1); } Let's say we just want to deal with individual bits from the file. I know we can read the file char by char, but can we read it bit by bit just as easily? ...

[C++] Priority Queue Wrong Order

I am programming the huffman encoding. This is the beginning of my program: using namespace std; //Counting methods int *CountCharOccurence(string text) { int *charOccurrence = new int[127]; for(int i = 0; i < text.length(); i++) { charOccurrence[text[i]]++; } return charOccurrence; } void DisplayCharOccure...

Does anyone have Adaptive Huffman compression for C#?

Does anyone see this kind of source code over the Internet? I have tried Google, it seems no where having this. Is Adaptive Huffman encoder good? Or Anyone can share with me about the source code (C#) for it? Thanks ...

C++ Structure within itself?

I've been trying to port this code to python, but there is something I do not quite understand in C++ (I do know a bit of C++ but this is beyond me): typedef struct huffnode_s { struct huffnode_s *zero; struct huffnode_s *one; unsigned char val; float freq; } huffnode_t; What I don't get is how huffnode_s can be within...

Huffman coding two characters as one

Hi, I need huffman code(best in python or in java), which could encode text not by one character (a = 10, b = 11), but by two (ab = 11, ag = 10). Is it possible and if yes, where could i find it, maybe it's somewhere in the internet and i just can'd find it? ...

Confused about Huffman Trees

A quick tutorial on generating a huffman tree Confused about Huffman Trees. Near the end of that link above, it shows the tree with 2 elements left, and then the completed tree. I'm confused about the way that it is branched. Is there a specific way a huffman tree needs to be branched? For example, 57:* with its right child 35:* is bra...

Is it possible to achieve Huffman decoding in GPU?

We have a database encoded with Huffman coding. The aim here is to copy on the GPU it with its associated decoder; then on the GPU, decod the database and do stuff on this decoded database without copying back it on the CPU. I am far to be a Huffman specialist, but the few I know shows that it seems to be an algorithm essentially based ...

Java - Need help with binary/code string manipulation

For a project, I have to convert a binary string into (an array of) bytes and write it out to a file in binary. Say that I have a sentence converted into a code string using a huffman encoding. For example, if the sentence was: "hello" h = 00 e = 01, l = 10, o = 11 Then the string representation would be 0001101011. How would I conver...

Condition for single bit code for a character in Huffman code?

This is a question I ran into in school settings, but it keeps bugging me so I decided to ask it here. In Huffman compression, fixed-length sequences (characters) are encoded with variable-length sequences. The code sequence length depends on the frequencies (or probabilities) of the source characters. My questions is: what is the mini...

I don't understand this Huffman algorithm implementation

template<class T> void huffman(MinHeap<TreeNode<T>*> heap, int n) { for(int i=0;i<n-1;i++) { TreeNode<T> *first = heap.pop(); TreeNode<T> *second = heap.pop(); TreeNode<T> *bt = new BinaryTreeNode<T>(first, second, first.data, second.data); heap.push(bt); } } In my Funda...

Priority Queues with Huffman tree

i am trying to create a Huffman tree by reading in a file and counting the frequency of each letter space symbol etc. i'm using a Priorityqueue to queue the items from smallest to largest but when i insert them into the queue they dont queue correctly here is my code. package huffman; import java.io.FileNotFoundException; import jav...

Huffman Tree Encodeing

So i must say that i love this site because its sooooo helpful and now i have another question! my Huffman tree which i had asked about earlier has another problem! here is the code: package huffman; import java.io.FileNotFoundException; import java.io.FileReader; import java.util.ArrayList; import java.util.PriorityQueue; import java...

Recursively searching a tree to get the binary coding for a character

Hi im trying to figure out how to recursively search a tree to find a character and the binary code to get to that character. basically the goal is to go find the code for the character and then write it to a file. the file writer part i can do no problem but the real problem is putting the binary code into a string. while im searching f...

Building a Huffman tree

I've been working on this Huffman tree builder: // variable al is an array list that holds all the different characters and their frequencies // variable r is a Frequency which is supposed to be the roots for all the leaves which holds a null string and the frequencies of the combined nodes removed from the priority queue public Frequen...

Searching for the path on a Huffman Tree

I'm working on a Huffman tree and I'm trying to figure out how to traverse the tree to find the node that has the character that I'm looking for. While searching the tree i need to keep a string of the path that is taken to the node that I'm looking for using 1's and 0's (0 left 1 right). How can i do this? ...

Byte frequency table for Huffman coding

I'm writing a huffman compressor and decompressor (in C++) that needs to work on arbitrary binary files. I need a bit of data structure advice. Right now, my compression process is as follows: Read the bytes of the file in binary form to a char* buffer Use an std::map to count the frequencies of each byte pattern in the file. (This is ...

Optimized order of HTML attributes for compression

I read somewhere that organizing HTML attributes in a certain order can improve the rate of compression for the HTML document. (I think I read this from Google or Yahoo recommendation for faster sites). If I recall correctly, the recommendation was to put the most common attributes first (e.g. id, etc.) then put the rest in alphabetical ...