int miniSon(Tas *t, int i) { if (!hasRight(t, i)) return left(i); else { int l = left(i); int r = right(i); return (t->tab[l] < t->tab[r]) ? l:r; } }
void inorder_traversal(TLDNode *inorder[], long *curIndex, long size, TLDNode *node) { if (hasLeft(node)) { inorder_traversal(inorder, curIndex, size, node->left); } inorder[*curIndex] = node; (*curIndex)++; if (hasRight(node)) { inorder_traversal(inorder, curIndex, size, node->right); } }
const Node* getRight() const { assert( hasRight() ); return this + traversal.rightNodeOffset; }
void right() { assert( hasRight() ); node_ = node_->getRight(); }