Adding support for building wavelet trees using uchar arrays
[SXSI/XMLTree.git] / libcds / src / coders / huffman_codes.cpp
index 8bffa69..a3ccf1a 100644 (file)
@@ -34,6 +34,19 @@ huffman_codes::huffman_codes(uint * symb, uint n) {
   delete [] occ;
 }
 
+huffman_codes::huffman_codes(uchar * symb, uint n) {
+  uchar max_v = 0;
+  for(uint i=0;i<n;i++)
+    max_v = max(max_v,symb[i]);
+  uint * occ = new uint[max_v+1];
+  for(uint i=0;i<max_v+1;i++)
+    occ[i] = 0;
+  for(uint i=0;i<n;i++)
+    occ[symb[i]]++;
+  huff_table = createHuff(occ, max_v);
+  delete [] occ;
+}
+
 huffman_codes::huffman_codes() {
 }