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. */