• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c++ 両側からDequeueできるキューの関数について教えてください!)

c++ 両側からDequeueできるキューの関数について教えてください!

このQ&Aのポイント
  • c++ 両側からDequeueできるキューの関数について教えてください!異常な動作が発生しているようです。通常のキューであるDequeでは、上から取り出すpop_front()は正常に機能しますが、pop_rear()は正常に機能しません。
  • pop_rear()関数の実装を見ると、もしキューが空であればDequeueExceptionがスローされますが、そうでなければ`backPtr`の値を更新し、`tempPtr`を解放しています。しかし、バグがあるようです。正しい実装について教えてください。
  • pop_rear()関数の正しい実装は次のようになります。キューが空である場合は`DequeueException`をスローし、それ以外の場合はbackPtrを更新し、tempPtrを解放します。

質問者が選んだベストアンサー

  • ベストアンサー
  • mooncake
  • ベストアンサー率100% (6/6)
回答No.1

> else > { >  backPtr = backPtr->prev; >  tempPtr->next = NULL; >  delete tempPtr; > } ここの tempPtr->next = NULL; ですが、 多分ここが原因だと思います。 ここを if(tempPtr->prev != NULL) (tempPtr->prev)->next = NULL; にしてみるとうまく動かないでしょうか? 全てのソースを見たわけでもないので自信ないですが、最近 よく似た関数を組んだ所なので何となくそういう気がします。

関連するQ&A