Fixed construction space
[SXSI/XMLTree.git] / libcds / src / static_sequence / static_sequence_wvtree_noptrs.h
index 23e6486..3f7a977 100644 (file)
@@ -38,7 +38,7 @@ class static_sequence_wvtree_noptrs : public static_sequence {
     /** Builds a Wavelet Tree for the string
      * pointed by symbols assuming its length
      * equals n and uses bmb to build the bitsequence */
-     static_sequence_wvtree_noptrs(uint * symbols, uint n, static_bitsequence_builder * bmb, alphabet_mapper * am);
+    static_sequence_wvtree_noptrs(uint * symbols, uint n, static_bitsequence_builder * bmb, alphabet_mapper * am, bool deleteSymbols = false);
 
     /** Destroys the Wavelet Tree */
     virtual ~static_sequence_wvtree_noptrs();
@@ -47,11 +47,18 @@ class static_sequence_wvtree_noptrs : public static_sequence {
     virtual uint select(uint symbol, uint i);
     virtual uint access(uint pos);
     virtual uint size();
+
+    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 save(FILE *fp);
     static static_sequence_wvtree_noptrs * load(FILE *fp);
 
   protected:
+    void access(vector<int> &result, uint i, uint j, uint min, uint max, uint l, uint pivot, uint start, uint end);
+    void accessAll(vector<int> &result, uint i, uint j, uint l, uint pivot, uint start, uint end);
+    uint count(uint i, uint j, uint min, uint max, uint l, uint pivot, uint start, uint end);
 
     static_sequence_wvtree_noptrs();