我试图在 C++ 中实现一个 Linked ArrayList 以用于指令目的,但我遇到了一个障碍,我不确定如何解开它。我的指针数组似乎不是由指针组成,而是由实际对象组成。
使我的代码尽可能简短。
//arraylist.h//
class classArrayList {
private:
class Node {
Node();
//accessors
};
Node* classArray;
public:
classArrayList();
};
//arraylist.cpp//
classArrayList::classArrayList() {
Node* node = new Node();
this->setHead(node);
this->setMaxSize(5);
classArray = new Node[5];
this->classArray[0] = *node;
this->setSize(1);
}
void classArrayList::deleteNode( int index ) {
Node* my_current = &this->classArray[index];
//blahblah
}
但是当我去删除一个节点时,“my_current”不会链接到这个列表中的下一个或上一个。试图在零位置删除,没有下一个。
所以肯定有一个带有数据的节点,但它没有链接,但是检查调试器我的链接列表很好并且可以工作,所以无论数组指向什么都搞砸了。
所以不是指向列表,而是指向唯一实例,我该如何解决这个问题?
我向数组添加新内容的代码是: this->classArray[some_index] = *new_node;
为了澄清,我希望能够有一个数组依次指向我的链表中的每个对象。然后,当我在数组列表中的任何 n 处请求一个时,将其引用到一个指针,然后通过它在数组中的位置对列表中的对象进行细化,而不是在列表中递增,直到找到我想要的第 n 个.