#include <alphabet_mapper.h>
#include <static_sequence.h>
-using namespace std;
+//using namespace std;
/** Wavelet tree implementation using pointers.
*
* equals n */
static_sequence_wvtree(uint * symbols, uint n, wt_coder * coder, static_bitsequence_builder * bmb, alphabet_mapper * am);
+ static_sequence_wvtree(uchar * symbols, uint n, wt_coder * coder, static_bitsequence_builder * bmb, alphabet_mapper * am);
+
virtual ~static_sequence_wvtree();
virtual uint rank(uint symbol, uint pos);
+ virtual uint rankLessThan(uint &symbol, uint pos);
virtual uint select(uint symbol, uint i);
virtual uint access(uint pos);
+ virtual uint access(uint pos, uint &rank)
+ {
+ return root->access(pos, rank);
+ }
+ // Returns all elements from interval [i, j] such that
+ // their value is in [min, max].
+ virtual vector<int> access(uint i, uint j, uint min, uint max);
+ virtual vector<int> accessAll(uint i, uint j);
+ virtual uint count(uint i, uint j, uint min, uint max);
+
virtual uint count(uint s);
virtual uint size();