リンクリストのためにpush_back
関数を実装するために次のコードを調べようとしていますが、私にはなぜback_ptr->next
とback_ptr
が必要ですp
。私はback_ptr->next
は、それが仕事のためにちょうどNULL
を指し示すことができると私が行方不明であるようにそれを実装する利点はありますか?リンクバックプッシュバック操作で 'バックポインタ'が必要
void LinkedList::push_back(int element) {
Node *p = new Node;
p->element = elememt;
p->next = 0;
if (empty()) {
front_ptr = back_ptr = p;
} else {
back_ptr->next = p;
back_ptr = p;
}
}
以下は、LinkedList
クラスプロトタイプです。 back_ptr
は、コピーコンストラクタを実装するためのリストの最後を指し示すために使用されています(push_back
はリストのコピーをもっと簡単にします)。
class LinkedList {
void push_back(int element);
// other member functions
private:
struct Node {
Node *next;
int element;
};
Node *front_ptr;
Node *back_ptr;
};