我有一个带有两个指针的结构,我存储在相同类型的数组中。我不确定如何访问数组的每个特定索引中的指针。
class List
{
public:
List();
private:
struct L_Node
{
L_Node *next;
L_Node *prev;
int iValue; // not actually doing anything in this example
}
L_Node head[4];
L_Node tail[4];
}
在构造函数中,我希望head [0]接下来指向tail [0] next,head [1]接下来是tail [1] next,依此类推,* prev指向尾巴到头部形成双重链表。对于head,prev = NULL,而tail next = NULL。在head和tail数组之间,我试图拥有一些L_Node的动态实例。
截至目前,在我的构造函数中,我有
head->next = new L_Node;
head->prev = NULL;
tail->next = NULL;
tail->prev = new L_Node;
head->next->next = tail;
tail->prev->prev = head;
它编译,但我不确定它是如何表现的。 head [0]是否通过动态结构指向tail [0],依此类推?
提前感谢您提供任何帮助或提示。
编辑:
是指针的typedef,例如
typedef L_Node *L_Ptr;
有帮助吗?
答案 0 :(得分:0)
根据您的说明,这是您在List
的构造函数中所需要的:
List::List()
{
for (int i = 0; i != 4; ++i )
{
head[i].next = tail[i];
tail[i].prev = head[i];
}
}
我会在L_Node
中添加一个构造函数,以便为其成员数据提供合理的初始值。
L_Node() : next(NULL), prev(NULL), iValue(0) {}