我在学习数据结构 当我阅读这段代码时,我无法理解
void kth(int k){
Node* x = root;
while(1){
while(x->l && x->l->cnt > k) x = x->l;
if(x->l) x -= x->l->cnt; // **==> ?????**
if(!k--) break;
x = x->r;
}
splay(x);
}
所有其他行都可以理解,但是
if(x->l) x -= x->l->cnt; // **==> ?????**
这行看不懂 x 是指向地址的指针
但是cnt是一个整型变量,
而x是由'new'操作符分配的指针
x -= x->l->cnt
这行是什么意思?
这行代码在语法或语义上是否正确?