私のリンク先リストを作成するときに、 に値を持たせたくないので、私のヘッドポインタはnullになっているはずです。ダブルリンクリストの逆参照はnullです
ヌルであるものを参照解除することはできませんが、 ですが、次のノードで新しいものを指し示したいと思います。 ヘッドノードポインタをどのように指すことができるか説明できる人はいますか?あなたのリストのコンストラクタで
void dlist::push_front(int value) {
node *p = new node();
node *tempH = head();
tempH->next = p; //break
/***********************************************************
my head pointer is suposed to be null, because I don't want
it to have any value when I make my linked list.
I know that you can't dereference something that is null,
but I just want to point it's next node to something new.
can someone explane how I could point the head node pointer?
************************************************************/
p->value = value;
p->next = tempH->next;
p->prev = tempH;
p->next->prev = p;
p->prev->next = p;
}
#pragma once
#include <ostream>
class dlist {
public:
dlist() {}
// Implement the destructor, to delete all the nodes
//~dlist();
struct node {
int value;
node* next;
node* prev;
};
node* head() const { return _head; }
node* tail() const { return _tail; }
void push_front(int value);
private:
node* _head = nullptr;
node* _tail = nullptr;
};
逆参照する前に '_head'に何かを割り当てますか?さらに、あなたの質問は混乱しています。なぜなら、私はXを行うことができないことを知っていますが、Xをどうすればいいのですか? –
短い答えはできません。ヘッドノードをnullにすることはできません。 'next'を何か新しいものにするためには、メモリを割り当てなければなりません。 本当の質問は次のとおりです。達成しようとしていることは何ですか? – AndyG
* "私の頭のポインタはnullになっているはずです[...]ただ次のノードに何か新しいものがあることを指しておきたい" *それがヌルの場合、次のポインタを設定する "それ"はありません。ヘッドノードの次のポインタを設定する前に、ヘッドノードを割り当てる必要があります。 –