我第一次使用鏈接列表,並且必須創建一個可以在雙鏈表的末尾插入節點的函數。到目前爲止,我有在雙向鏈表的尾部插入
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'中取消引用它,直到它已經指向第一個元素 –