ホームページ  >  記事  >  Java  >  キューインターフェイスを作成する

キューインターフェイスを作成する

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-02 06:23:30193ブラウズ
  • 文字キュー用のインターフェースの作成。

  • 開発される 3 つの実装:

  • 固定サイズの線形キュー。

  • 循環キュー (配列スペースを再利用)。

  • 動的キュー (必要に応じて増加します)。

1 ICharQ.java というファイルを作成します
// 文字キューインターフェイス。
パブリック インターフェイス ICharQ {
// キューに文字を挿入します。
void put(char ch);
// キューから文字を削除します。
char get();
}

2 IQDemo.java というファイルを作成します。

3 ここに示すFixedQueueクラスを追加して、IQDemo.javaの作成を開始します。

Crie uma interface Queue

4 以下に示す CircularQueue クラスを IQDemo.java に追加します。

Crie uma interface Queue

  • 循環キュー操作: 要素を削除するときに配列内で解放されたスペースを再利用します。削除がある限り、無制限の数の要素を保存できます。

  • 境界条件: 配列の末尾に到達してもキューはいっぱいではありませんが、削除されていない項目が新しい項目で上書きされるとキューはいっぱいになります。
    put() メソッドは、キューがいっぱいかどうかを判断するためにいくつかの条件をチェックする必要があります。

  • 満杯のキューの条件: 次の場合、キューは満杯です。 putloc が getloc より小さい単位です。 putloc は配列の最後にあり、getloc は先頭にあります。

  • 空のキュー条件: getloc と putloc が等しい場合、キューは空です。

  • 配列サイズ: チェックを容易にするために、基になる配列はキュー サイズより 1 単位大きく作成されます。

5 以下に示す DynQueue クラスを IQDemo.java に挿入します。スペースが不足するとサイズを拡張する「拡張可能な」キューが実装されています。

Crie uma interface Queue

  • このキューの実装では、キューがいっぱいになったときに別の要素を格納しようとすると、新しい基礎となる配列が 2 倍の大きさになります。 元の配列が割り当てられ、キューの現在の内容がこの配列にコピーされ、新しい配列への参照が q.
  • に保存されます。

6 ICharQ の 3 つの実装をデモンストレーションするには、次のクラスを IQDemo.java に挿入します。 ICharQ 参照を使用してすべてのキューにアクセスします。

クラス IQDemo {
public static void main(String args[]) {
FixedQueue q1 = 新しいFixedQueue(10);
DynQueue q2 = 新しい DynQueue(5);
CircularQueue q3 = 新しい CircularQueue(10);
ICharQ iQ;
チャーch;
int i;
iQ = q1;
// いくつかの文字を固定キューに挿入します。
for(i=0; i iQ.put((char) ('A' i));
// キューを表示します。
System.out.print("固定キューの内容: ");
for(i=0; i ch = iQ.get();
System.out.print(ch);
}
System.out.println();
iQ = q2;
// いくつかの文字を動的キューに挿入します。
for(i=0; i iQ.put((char) ('Z' - i));
// キューを表示します。
System.out.print("動的キューの内容: ");
for(i=0; i ch = iQ.get();
System.out.print(ch);
}
System.out.println();
iQ = q3;
// いくつかの文字を循環キューに挿入します。
for(i=0; i iQ.put((char) ('A' i));
// キューを表示します。
System.out.print("循環キューの内容: ");
for(i=0; i ch = iQ.get();
System.out.print(ch);
}
System.out.println();
// 循環キューにさらに文字を挿入します。
for(i=10; i iQ.put((char) ('A' i));
// キューを表示します。
System.out.print("循環キューの内容: ");
for(i=0; i ch = iQ.get();
System.out.print(ch);
}
System.out.println("n保存して消費"
" 循環キュー。");
// 循環キューからアイテムを保存および消費します。
for(i=0; i iQ.put((char) ('A' i));
ch = iQ.get();
System.out.print(ch);
}
}
}

7 DynQueue の循環バージョンを作成します。キューをネットするreset()メソッドをICharQに追加します。あるキュー タイプの内容を別のキュー タイプにコピーする静的メソッドを作成します。

以上がキューインターフェイスを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。