(1)区间树所存的value为一个区间interval,其key值为interval的low值(即左值,由于树有左右节点,interval由low,high决定,避免混淆)
(2)区间树还储存某节点 x 的所有子节点中最大值m,即m = m[x], or m = m[x->left], or m = m[x->right.
m所带来的modifier操作的修改:
- 旋转操作:
pnode left_rotate(pnode &x){ pnode y = x->right; if(y->left != nil){ x->right = y->left; y->left->p = x; } else x->right = nil; y->p = x->p; if(x->p != nil){ if(x == x->p->left) x->p->left = y; else x->p->right = y; } y->left = x; x->p = y; int max = x->m; //注意:旋转操作会使m的值改变, depends on their children's m if(x->right->m > max) max = x->right->m; x->m &#