X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=XMLTree.h;fp=XMLTree.h;h=74a71e65ab145858500ef611dd5f05ca4a2f4e6c;hb=883743aa4d19900d312bd186df810a68ecd71cf8;hp=351db204fd81f1d8e3301c7fcedce62d11847b47;hpb=6705d3d650a0823115d712cbf9a46b6c10f4e04c;p=SXSI%2FXMLTree.git diff --git a/XMLTree.h b/XMLTree.h index 351db20..74a71e6 100644 --- a/XMLTree.h +++ b/XMLTree.h @@ -294,10 +294,15 @@ public: bool IsChild(treeNode x, treeNode y); /** IsFirstChild(x): returns whether node x is the first child of its parent. */ - /* OCAML */ + /* SLOW bool IsFirstChild(treeNode x) { return ((x != NULLT)&&(x==Root() || bp_prev_sibling(Par,x) == (treeNode)-1)); }; + */ + + bool IsFirstChild(treeNode x) { + return (x <= Root()) || (bp_inspect(Par,x-1) == OP); + } /** NumChildren(x): number of children of node x. Constant time with the * data structure of Sadakane. */