rendered paste bodyArb AB_CrNod(void *ch, Arb s, Arb d, Arb p, int dir)
{
Arb r=(Arb) malloc(sizeof(struct arb));
r->key=ch;
r->st=s;
r->dr=d;
r->pred=p;
if (p)
switch(dir)
{
case -1: p->st=r;break;
case 1: p->dr=r;break;
case 0: ;
}
return r;
}
Arb AB_CrArb(Arb r, Arb s, Arb d)
{
assert(r);
AB_SetSS(r,s);
AB_SetSD(r,d);
return r;
}
Arb AB_Copy(Arb a)
{
if (AB_Empty(a)) return NULL;
Arb b=AB_CrNod(AB_GetKey(a),NULL,NULL,NULL,0);
Arb s=AB_Copy(AB_GetSS(a));
Arb d=AB_Copy(AB_GetSD(a));
return AB_CrArb(b,s,d);
}