我第一次使用链接列表,并且必须创建一个可以在双链表的末尾插入节点的函数。到目前为止,我有在双向链表的尾部插入
void LinkedList::insertAtTail(const value_type& entry) {
Node *newNode = new Node(entry, NULL, tail);
tail->next = newNode;
tail = newNode;
++node_count;
}
节点类接受的值存储,下一个指针的值指向,并在该顺序在先指针的值。每当我尝试在此处插入节点时,都会收到一条错误消息,说明存在未处理的异常,并且在写入位置0x00000008时存在访问冲突。
我不完全确定这里出了什么问题,但我认为它与根据错误消息取消引用空指针有关。我真的很感谢解决这个问题的一些帮助。
编辑:
我应该及早澄清,尾巴是指向在列表中的最后一个节点的指针。尾 - >下一个访问最后一个节点的下一个变量,它在函数运行之前指向NULL,但在执行之后应该指向创建的新节点。
只是一个镜头显示我们:'LinkedList'和'Node'类,没有太多在你的第一篇文章的背景。 –
指向'newNode'的'tail'和'tail-> next'有什么问题吗? *(看起来像一个循环引用,但我可能是错的。)* –
你的'tail'最初是NULL吗?您不能在'tail-> next'中取消引用它,直到它已经指向第一个元素 –