rb->aa = newPathKeeper(adjaLoadAdjList(rb->nodecount)); for (i = 0; i < howManyLeaves-2; ++i) { adjaSetConState(rb->aa, i, i+howManyLeaves-1, 1); adjaSetConState(rb->aa, i, i+1, 1);
if (uaa) { rb->aa = newPathKeeper(uaa); } else { rb->aa = newPathKeeper(adjaLoadAdjList(rb->nodecount)); for (i = 0; i < howManyLeaves-2; ++i) { adjaSetConState(rb->aa, i, i+howManyLeaves-1, 1); adjaSetConState(rb->aa, i, i+1, 1); }
struct RootedBinary *rootedbinaryNew(int howManyLeaves){  int i;  struct DoubleA *leaves;  struct RootedBinary *rb = clCalloc(sizeof(struct RootedBinary), 1);  assert(howManyLeaves > 3);  rb->nodecount = 2*howManyLeaves-3;  rb->aa = newPathKeeper(adjaLoadAdjList(rb->nodecount));  for (i = 0; i < howManyLeaves-2; ++i) {    adjaSetConState(rb->aa, i, i+howManyLeaves-1, 1);    adjaSetConState(rb->aa, i, i+1, 1);  }  leaves = getLabellableNodes(rb);  assert(doubleaSize(leaves) == howManyLeaves);  rb->labelperm = labelpermNew(leaves);  doubleaFree(leaves);  verifyTree(rb);  return rb;}