pop_back()関数は、二重リンクリストの最後の要素を削除することになっています。しかし、私の現在のコードでは、最後の2つの要素だけが削除されます。私はpop_front()関数をこのように設定しましたが、うまく動作します。私は間違って何をしたのか分かりません。問題はありませんすぐに明らかである場合は、その後、C++二重リンクリスト - pop_back()を使用して末尾から要素を削除する
void linkedlist::pop_back()
{
if (empty())
return;
else {
Node *delBack = tail;
Node *nodeToDelete = delBack;
delBack = delBack->prev;
delBack->next = NULL;
delete nodeToDelete;
tail = delBack;
numElements--;
}
}
:
class linkedlist
{
private:
struct Node{
Node* next;
Node* prev;
element_type data;
};
Node* head;
Node* tail;
unsigned int numElements;
のLinkedListのパブリックセクションからマイpop_back()関数:ここ
は、構造体のノードを持つ私のLinkedListヘッダの一部でありますエラーがコードのどこかに埋め込まれている可能性があります。まだ探している。
あなたが共有していることに基づいて何もジャンプしていません。 –
@Ryan関数は間違っていますが、1つのノードだけが削除されます:) :) –
*私はpop_front()関数をこのように設定しました* - これはあなたがこれらの方法に似ていませんリンクリストの問題。あなたは紙に描いたものに基づいて関数を記述します。データと線を表すボックスはリンクを表しています。このロジックが正しい方法を紙に描くことによって実際に動作することを確認せずに 'pop_back'を書いたことがあります。 – PaulMcKenzie