私のQueueクラスに問題があります。キューは配列に基づいています。キュー項目が配列の最後に到達すると、配列の先頭に追加する必要があります。キューがいっぱいになると、最も古いキューアイテムを削除して表示する必要があります。 8番目の要素が挿入されたときに削除された最も古い項目を表示するのに問題があります。キューのような配列を使用する
ユーザーが最初の3人の顧客の名前を表示するように選択すると、コードを1つずつキューから削除して(先入れ先出し)コードを削除して表示する必要があります。
例入出力:
キュー入力される: B C D E F G H
キュー出力される。 H B C D e f g
除去 項目は以下のとおりであった:H
予想出力は次のようになります
H除去 F G 項目があった B C D E:
は、それが挿入され、最後に移動アレイの前面にあるアイテムですが、「削除されたアイテムはどのように表示されましたか:」「 コードは:
public class MyQueue {
private final static int CAPACITY = 7;
static String qitems[] = new String[CAPACITY];
private static int front = 0, end = 0, count=0;
public void addqueue(String name) {
qitems[end] = name;
count++;
if(count==7) {
takequeue();
System.out.println("Queue is full");
}
end = (end + 1) % 7;
}
public void takequeue() {
System.out.println("Item removed:"+qitems[front]);
front = (front +1) % 7;
}
public void displayNames() {
System.out.println(" 3 names entered are: ");
for (int x = 0; x < 3; x++) {
System.out.println(qitems[x]);
}
}
}
あなたのコードは私のために正常に動作するようです。 – thecardkid
問題は削除されたアイテムが削除されたことを示していないことです。削除されたアイテムが表示されています:h – tomaszsvd
8個の名前が追加された後に何が起こりますか?それは決して再び7に等しくなりません。 – KevinO