32 {
while((t = root->left) )
48 {
while((t = root->
right) )
52 {
while((t = root->left) )
73 l->
right = root->left;
74 r->left = root->
right;
92 else if(root &&
_DTOBJ(root,lk) != obj)
100 {
if((t = root->left) )
105 if(!(root = t->left) )
116 if(!(root = t->
right) )
127 {
if((t = root->
right) )
132 if(!(root = t->
right) )
143 if(!(root = t->left) )
158 l->
right = root->left;
159 r->left = root->
right;
163 root->left = link.
right;
164 root->
right = link.left;
167 while((t = root->left) )
169 while((r = t->
right) )
184 { root->left = link.
right;
188 if((root = link.left) )
189 {
while((t = root->left) )
191 link.left = root->
right;
197 { root->
right = link.left;
201 if((root = link.
right) )
202 {
while((t = root->
right) )
204 link.right = root->left;
226 root->
right = link.left;
240 me->
right = link.left;
258 while((t = r->left) )
260 r->left = link.
right;
#define _DTKEY(o, ky, sz)
#define _DTDSC(dc, ky, sz, lk, cmpf)
int(* Dtcompar_f)(void *, void *)
#define _DTCMP(k1, k2, cmpf, sz)
static void * dttree(Dt_t *dt, void *obj, int type)
static Dtmethod_t Dtoset_
static Dtmethod_t Dtobag_
Dtmethod_t * Dtoset
ordered set (self-adjusting tree)
static Dtmethod_t Dttree_
Dtmethod_t * Dtobag
ordered multiset
static int cmp(const void *key, const void *candidate)
Dtdata_t data
sharable data