+// TaggedFoll(x,tag): returns the first node tagged tag with larger preorder than x and not in\r
+// the subtree of x. Returns NULLT if there is none.\r
+treeNode XMLTree::TaggedFollBelow(treeNode x, TagType tag, treeNode root)\r
+ {\r
+\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
+ } \r
+\r