ドイです。
前回スタッククラスについて質問させていただきました。
今回はキュークラスについての質問なのですが、
データ格納→取り出しプログラムをキュークラスを使って作っています。
このプログラムのデータ取り出しのとき
同じ値を2度取り出してしまいます。
おそらくデータ取り出しの部分に不備があると思うのですが、
直す部分がわからないので質問させていただきます。よろしくお願いします。
#include <iostream.h>
const int qs = 5;
//キュークラスの定義
class Queue{
private :
int ryouiki[qs];
int TAIL; //次に格納できるデータの場所
int HEAD; //次に取り出せるデータの場所
public :
//コンストラクタ
Queue()
{
TAIL = 0;
HEAD = 0;
};
//データの格納
void enqueue(int data){
if(TAIL < qs){
ryouiki[TAIL] = data;
TAIL+1;
}
if(TAIL >= qs){
cout <<"Overflow";
exit(1);
}
}
//データを取り出す
int dequeue()
{
if(0 <= HEAD){
HEAD-1;
return ryouiki[HEAD];
}else{
cout <<"Underflow fail";
exit(1);
}
return 0;
}
};
main(){
Queue qu;
int data;
cout << "data = " ;
cin >> data ;
qu.enqueue(data) ;
cout << "data = " ;
cin >> data ;
qu.enqueue(data);
cout << "―― データの取り出し ――" << endl;
data = qu.dequeue() ;
cout << data << endl;
data = qu.dequeue() ;
cout << data << endl;
return 0 ;
}
自分はそこを直せば(直し方がわからないのですが…)正しく動くと考えているのですが、
他にもおかしいところがあったりした場合はご教鞭のほど、よろしくお願いします。