日々進歩の少しは、成功することを主張しました。
1、キュー
/ ** *誰もが完璧ではありません、どんなバグならば、また私を修正してください * Javaデータ構造を学ぶために継続----キュー(待ち行列) *キュー、スタック、アレイを使用しますが、ヘッドオブキュー、チームのより多くされていますデータ・アクセス・ヘッドは、尾はデータに挿入されている *重要な特性データFIFOキュー---- *エンキュー、デキューは、フルチーム、チーム・スペースは、参照 * / publicクラスキュー{ ;プライベートロングARR [] プライベートint型MAXSIZE ; //最大容量 プライベートINTフロント; // HOL、データアクセス プライベート後INT; //尾、データ挿入 プライベートINT要素; //有効データ パブリックキュー(int型のサイズ){ this.Maxsize =サイズ; ARR =長い[MAXSIZE]新しい新しい、 フロント= 0; //インデックス0アクセスで開始 //スタックポインタが対応; = -1後部 要素= 0; } //有効なデータ 公共ボイドショー(){ System.out.printlnは(エレメント); } //現在のデータポイントをチェック 公衆ロングPEEK(){ しばらく(!q.isEmpty()){ ARR [フロント]を返します。 } //入队 公共ボイドは、{(int値)を追加 ARR [++リア] =値。 要素++; } //出队 公衆ロング削除(){ 長い値=のARR [フロント++]; //队头从0开始 elements--。 値を返します。 } //队满 パブリックブールのisEmpty(){ 要素== 0を返します。 } //队空 パブリックブールisFull(){ リターン要素は== MAXSIZE。 } パブリック静的無効メイン(文字列[] args){ キューQ =新しいキュー(3)。 q.add(52)。 q.add(2)。 q.add(6)。 System.out.print(q.remove()+」「); //先进先出 } } }
2、循環キュー
問題に悩まさキュー、最大長は例外がスローされます超え、これは良いではありませんので、我々は長さが実現可能であるよりもさらに追加して、循環キューを理解する必要があります。
//円形キュー パブリッククラスキュー{ プライベートロングARR []; プライベートINT MAXSIZE; //最大容量 プライベートINTフロント; // HOL、データアクセス プライベート後INT; //尾、データ挿入 プライベートINT要素; //データ有効 パブリックキュー(int型のサイズ){ this.Maxsize =サイズ; ARR =新しい新しいロング[MAXSIZE]; フロント= 0; //インデックス0アクセスで開始 後部= -1;に対応//スタックポインタ 要素= 0 ; } //有効なデータ 公共ボイドショー(){ System.out.printlnは(要素); } //現在のポイントデータをチェックし 、パブリックロングPEEK(){ ARR [フロント]を返す; } //エンキュー 公共ボイドが追加(int型値){ IF(REAR arr.length == - -1 1){// REAR初期値、添え字0~99 リア= -1; //尾リセット } のARR [++リア] =値; // この時点を第1の位置に 要素++; } //デキュー パブリックロング削除を(){ ロングARR値= [フロント++]。最初の文の//実装は、フロント等しいarr.lengthである 場合には(==フロントarr.length){// 1 + 2 3 =。 フロント= 0; // HOLをリセット } elements--; 戻り値; } / /チームフル パブリックブールのisEmpty(){ 要素== 0を返す; } //ヌル力 パブリックブールisFull(){ 要素== MAXSIZEを返す; } パブリック静的無効メイン(文字列[] args){ キューキュー新しい新しいQ(= 3); q.add(52)であり; q.add(2); q.add(6)。 。q.add(6)。 q.add(6)。 一方、{(q.isEmpty()!) System.out.print(q.remove()+ "「); //先进先出 } } }