【发布时间】:2021-09-14 13:14:03
【问题描述】:
class Node {
Node **ptr;
int size; // current size of the node
Node::Node() {
ptr = new Node *[MAX + 1];
}
void Tree::insert(int x) {
Node *cursor = root;
// some code...
cursor->size++;
cursor->ptr[cursor->size] = cursor->ptr[cursor->size - 1];
我对 cursor->ptr[cursor->size] = cursor->ptr[cursor->size - 1] 行在概念上的作用感到困惑。 cursor->ptr[cursor->size] 如果在上面代码的逻辑过程中之前没有使用过,它指向的是什么。我假设我们有指针数组,但是当我们创建它们时它们指向什么?你能解释一下这条线在做什么吗? 蒂亚!
【问题讨论】:
-
要删除间接级别,我会将
Node** ptr更改为std::vector<Node*> ptr。我认为您的困惑可能是指针分为两级,一个是动态数组,另一个是该数组中的每个单独的节点。