projects
/
SXSI
/
XMLTree.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
New rank/select data structure based on sadakane's code
[SXSI/XMLTree.git]
/
libcds
/
src
/
static_sequence
/
wt_node.h
diff --git
a/libcds/src/static_sequence/wt_node.h
b/libcds/src/static_sequence/wt_node.h
index
9e758a3
..
7bfa975
100644
(file)
--- a/
libcds/src/static_sequence/wt_node.h
+++ b/
libcds/src/static_sequence/wt_node.h
@@
-37,8
+37,15
@@
class wt_node {
public:
virtual ~wt_node() {}
virtual uint rank(uint symbol, uint pos, uint l, wt_coder * c)=0;
public:
virtual ~wt_node() {}
virtual uint rank(uint symbol, uint pos, uint l, wt_coder * c)=0;
+ virtual uint rankLessThan(uint &symbol, uint pos, uint level, wt_coder * c) = 0;
+ virtual uint rankLessThan(uint &symbol, uint pos) = 0;
virtual uint select(uint symbol, uint pos, uint l, wt_coder * c)=0;
virtual uint access(uint pos)=0;
virtual uint select(uint symbol, uint pos, uint l, wt_coder * c)=0;
virtual uint access(uint pos)=0;
+ virtual uint access(uint pos, uint &rank)
+ {
+ assert(0); // Implemented only in wt_node_internal
+ return -1;
+ }
virtual uint size()=0;
virtual uint save(FILE *fp)=0;
static wt_node * load(FILE *fp);
virtual uint size()=0;
virtual uint save(FILE *fp)=0;
static wt_node * load(FILE *fp);