summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
dc02a83)
git-svn-id: svn+ssh://idea.nguyen.vg/svn/sxsi/trunk/XMLTree@361
3cdefd35-fc62-479d-8e8d-
bae585ffb9ca
treeNode XMLTree::TaggedFollBelow(treeNode x, TagType tag, treeNode root)\r
{\r
\r
treeNode XMLTree::TaggedFollBelow(treeNode x, TagType tag, treeNode root)\r
{\r
\r
- //int r, s;\r
- int lim = node2tagpos(find_close(Par,root));\r
- if (x ==NULLT || x == Root())\r
- return NULLT;\r
- \r
- int s = (int) Tags->select_next(tag,find_close(Par,x));\r
- /*r = (int) Tags->rank(tag,find_close(Par,x));\r
- s = (int) Tags->select(tag, r+1); // select returns -1 in case that there is no r+1-th tag.*/\r
- if (s==-1 || s >= lim) \r
- return NULLT;\r
- else \r
- return tagpos2node(s);\r
+ if (x == NULLT || x == Root()) return NULLT;\r
+ treeNode s = (treeNode) Tags->select_next(tag,find_close(Par,x));\r
+ /*int r = (int) Tags->rank(tag, find_close(Par, x));\r
+ int s = (int) Tags->select(tag, r+1); */\r
+ if (root == Root())\r
+ return s;\r
+ \r
+ if (s == NULLT || s >= find_close(Par,root)) return NULLT;\r
+ return s;\r