/trunk/libmavl/mav.c |
---|
2,15 → 2,29 |
#include "mavl.h" |
void |
recalc(struct mavlnode *n){ |
n->bal = n->s[ (n->s[0]->bal>n->s[1]->bal) ? 0 : 1 ]->bal+1; |
} |
/* dir = 1 rot left */ |
static struct mavlnode * |
rot(struct mavlnode *n, struct mavlnode **parent, int dir) |
{ |
struct mavlnode *tmp; |
*parent = n->s[dir]; |
n->s[dir]=(*parent)->s[1-dir]; |
n->s[dir]=n; |
recalc(n); |
recalc(*parent); |
return *parentl; |
/* struct mavlnode *tmp; |
*parent = n->s[dir]; |
tmp = n->s[dir]->s[1-dir]; |
n->s[dir]->s[1-dir]=n; |
n->s[dir]=tmp; |
return NULL; |
*/ |
} |