Javaデータ構造 - キュー、循環キュー

日々進歩の少しは、成功することを主張しました。

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()+ "「); //先进先出
		} 

	} 

}

  

おすすめ

転載: www.cnblogs.com/hardhp74520/p/11305560.html