70,7 → 70,6 |
assert(0*sdir); |
} |
|
|
n->s[dir]->s[1-dir]->bal = 0; |
|
mavl_drot(n, parent,dir); |
104,8 → 103,6 |
(void) memcpy(data,mavlnode_dataptr(n),t->data_size); |
t->free(n); |
return 1; |
|
|
} |
|
|
145,26 → 142,18 |
t->count--; |
bal = mavl_del_lo(t,&n->s[1], mavlnode_dataptr(n)); |
dir = 1; |
sdir = dir ? 1:-1; |
n->bal -= bal*sdir; |
if (n->bal == -sdir) |
return 0; |
if (n->bal == -2*sdir){ |
return adj_bal(n,parent,1-dir,-sdir); |
} |
return bal; |
|
} |
} else { |
dir = rc < 0 ? 0 : 1; |
|
dir = rc < 0 ? 0 : 1; |
sdir = dir ? -1:1; |
|
/* if (!n->s[dir]){ |
printf("wrongdir\n"); |
exit(0); |
} |
*/ |
bal = mavl_del0(t, &n->s[dir], data); |
bal = mavl_del0(t, &n->s[dir], data); |
} |
|
sdir = dir ? 1:-1; |
n->bal -= bal*sdir; |
if (n->bal == -sdir) |