-1
私のキューの実現は、奇妙な方法で動作します:新しい要素をエンキューするときは、すべて正しいですが、デキューを開始するとき、この時点で私のヘッドが1であるにもかかわらず、尾が大きくなります。 C++での索引作成の特殊性は何ですか?なぜそれはこのように振る舞うのですか?ここ は私の完全なコードです: https://hastebin.com/odibusacuk.cppキューの実現C++
class Queue{
public:
int head=1;
int tail=1;
int q[MAX];
int Queue::enqueue(int x){
if (isFull()){
return 0;}
else {
q[tail]=x;
cout << tail << " here is a tail\n";
if (tail==sizeof(q)){
cout << tail << " this is tail\n" ;
tail=1;}
else {
tail=tail+1;
}
return x;
}
}
int Queue::dequeue(){
if(isEmpty()){
cout << " the queue is empty\n";
return 0;}
else {
int x=q[head];
if (head==sizeof(q)){
head=1;}
else {
head=head++;
return x;}
}
return 0;
}
[mcve]を含めてください。 – hnefatl
あなたが行ったことを私たちに見せて、修正できるようにする必要があります。 –
私の出力は 4 9 6 3エンキュー 1-ヘッドとテール-5 3デキューされました –