私は初めて連結リストを扱っており、二重連結リストの最後にノードを挿入できる関数を作成する必要があります。これまでのところ、
void LinkedList::insertAtTail(const value_type& entry) {
Node *newNode = new Node(entry, NULL, tail);
tail->next = newNode;
tail = newNode;
++node_count;
}
Node クラスは、格納する値、次に指すポインターの値、前のポインターの値をこの順序で受け入れます。ここにノードを挿入しようとすると、未処理の例外があり、0x00000008 への書き込み中にアクセス違反があったというエラーが表示されます。
ここで何が問題なのか完全にはわかりませんが、エラー メッセージに基づいて null ポインターを逆参照することと関係があると思います。この問題を解決するための助けをいただければ幸いです。
編集:
tail はリストの最後のノードを指すポインタです。Tail->next は、最後のノードの次の変数にアクセスします。この変数は、関数の実行前は NULL を指しますが、実行後は、作成された新しいノードを指す必要があります。