49 assert(size >=
nbin_);
59 for (
auto q = bins[
i]; q; q = q->
left_) {
69 int idt = (int) ((td -
tt_) *
rev_dt + 1.e-10);
210 n->leftlink =
nullptr;
211 n->rightlink =
nullptr;
230 temp = next->rightlink;
231 if (temp ==
nullptr) {
232 left->rightlink = next;
234 right->leftlink =
nullptr;
240 left->rightlink = next;
247 next->rightlink = temp->leftlink;
248 if (temp->leftlink !=
nullptr)
249 temp->leftlink->uplink = next;
250 left->rightlink = temp;
252 temp->leftlink = next;
255 next = temp->rightlink;
256 if (next ==
nullptr) {
257 right->leftlink =
nullptr;
269 temp = next->leftlink;
270 if (temp ==
nullptr) {
271 right->leftlink = next;
272 next->uplink = right;
273 left->rightlink =
nullptr;
279 right->leftlink = next;
280 next->uplink = right;
285 next->leftlink = temp->rightlink;
286 if (temp->rightlink !=
nullptr)
287 temp->rightlink->uplink = next;
288 right->leftlink = temp;
289 temp->uplink = right;
290 temp->rightlink = next;
293 next = temp->leftlink;
294 if (next ==
nullptr) {
295 left->rightlink =
nullptr;
308 n->leftlink = n->rightlink;
334 if (
np ==
nullptr || *
np ==
nullptr) {
338 left = next->leftlink;
339 if (left ==
nullptr) {
341 *
np = next->rightlink;
344 (*np)->uplink =
nullptr;
350 farleft = left->leftlink;
351 if (farleft ==
nullptr) {
353 next->leftlink = left->rightlink;
354 if (left->rightlink !=
nullptr)
355 left->rightlink->uplink = next;
360 farfarleft = farleft->leftlink;
361 if (farfarleft ==
nullptr) {
363 left->leftlink = farleft->rightlink;
364 if (farleft->rightlink !=
nullptr)
365 farleft->rightlink->uplink = left;
370 next->leftlink = farleft;
371 farleft->uplink = next;
372 left->leftlink = farleft->rightlink;
373 if (farleft->rightlink !=
nullptr)
374 farleft->rightlink->uplink = left;
375 farleft->rightlink = left;
376 left->uplink = farleft;
411 right = n->rightlink;
415 while (up !=
nullptr) {
420 if (up->leftlink == prev)
422 if (upup !=
nullptr && upup->leftlink == up)
424 upupup = upup->uplink;
425 upup->leftlink = up->rightlink;
426 if (upup->leftlink !=
nullptr)
427 upup->leftlink->uplink = upup;
428 up->rightlink = upup;
430 if (upupup ==
nullptr)
432 else if (upupup->leftlink == upup)
433 upupup->leftlink = up;
435 upupup->rightlink = up;
439 up->leftlink = right;
440 if (right !=
nullptr)
446 if (upup !=
nullptr && upup->rightlink == up)
448 upupup = upup->uplink;
449 upup->rightlink = up->leftlink;
450 if (upup->rightlink !=
nullptr)
451 upup->rightlink->uplink = upup;
454 if (upupup ==
nullptr)
456 else if (upupup->rightlink == upup)
457 upupup->rightlink = up;
459 upupup->leftlink = up;
463 up->rightlink = left;
473 if (q->
root != prev) {
480 n->rightlink = right;
483 if (right !=
nullptr)
509 x->rightlink = q->
root;
510 x->leftlink =
nullptr;
512 if (q->
root !=
nullptr)
541 q->
root->uplink =
nullptr;
545 x->leftlink = q->
root->leftlink;
546 x->rightlink = q->
root->rightlink;
547 if (x->leftlink !=
nullptr)
548 x->leftlink->uplink = x;
549 if (x->rightlink !=
nullptr)
550 x->rightlink->uplink = x;