--Javaスタックとキューを学習データ構造

スタック:最終

キュー:FIFO

すべてのストレージアレイが、配列内のデータを削除する際に削除されませんが、削除を達成するための方法を特定するために使用増加カーソル、「カーソルのロゴ」ガガと減少または完全な欠失、時間を見て、またそれは、スタックで直接見ていますキューおよび配列要素が、外側に道を表示するカーソルの使用。

実現スタック

com.example.deerパッケージ; 

パブリッククラスMyStack {
プライベートロング[] ARR;
プライベートint型トップ;

/ **
*デフォルトコンストラクタ
* /
パブリックMyStack(){
ARR =新しい新しいロング[10];
トップ= -1;
}

/ **
*コンストラクタパラメータ
* @paramのMAXSIZE
* /
パブリックMyStack(INT MAXSIZE){
ARR =新しい新しいロング[MAXSIZE];
トップ= -1;
}

/ **
*新しいデータ
* @param値
* /
公共ボイドプッシュ(int値){
ARR [トップ++] =値;
}

/ **
*リムーバブルデータ
*の@return
* /
長いPOP公開(){
ARR [top--]を返す;
}

/ **
*データの参照
*の@return
* /
{)公衆ロングPEEK(
ARR [トップ]を返す;
}

/ **
*は、空気か否かを判断する
*の@return
* /
パブリックブールのisEmpty(){
トップ== -1を返す;
}

/ **
*満杯か否かを判断する
* @return
* /
パブリックブールisFull(){
==トップarr.lengthを返す- 1;
}
}
のキュー
com.example.deerパッケージ; 

publicクラスMYQUEUE {
使用して//基になる配列
のプライベートロング[] ARRを;
//有効なデータサイズ
プライベートint型の要素;
// HOL
フロントプライベートint型;
//尾
プライベートint型エンド;

/ **
*デフォルトコンストラクタ
* /
パブリックMYQUEUE(){
ARR =新しい新しいロング[10];
要素= 0;
フロント= 0;
エンド= -1;
}

/ **
*コンストラクタ引数、アレイサイズのパラメータは、
* @param MAXSIZE
* /
公共MYQUEUE(int型MAXSIZE){
ARR =新しい新しいロング[MAXSIZE];
要素= 0;
フロント= 0;
終了= -1;
}
/ **
尾から挿入*追加されたデータ、
* /
公共ボイドINSERT(長い値){
ARR [終了++] =値;
要素++;
}
/ **
*データを削除し、キューの先頭から削除される
* /
公共長い削除(){
     要素 - ;
        ARR戻り[フロント++]; 
}
/ **
*データビュー、キューヘッドから眺め
* /
パブリックロングPEEK(){
ARR [フロント]を返す;
}
/ **
*判定された空かどうか
* /
パブリックブールのisEmpty(){
リターン0 ==要素;
}
/ **
*かどうかを判断するフル
* /
パブリックブールisFull(){
要素== arr.lengthを返す;
}
}
環状キューが主な問題である:それが満たされると、キューのキューを超えるまたは削除長さ、角度の標準的なクロスボーダーの問題が発生します。
キューの実装サイクル
com.example.deerパッケージ; 

publicクラスMYQUEUE {
使用して//基になる配列
のプライベートロング[] ARRを;
//有効なデータサイズ
プライベートint型の要素;
// HOL
フロントプライベートint型;
//尾
プライベートint型エンド;

/ **
*デフォルトコンストラクタ
* /
パブリックMYQUEUE(){
ARR =新しい新しいロング[10];
要素= 0;
フロント= 0;
エンド= -1;
}

/ **
*コンストラクタ引数、アレイサイズのパラメータは、
* @param MAXSIZE
* /
公共MYQUEUE(int型MAXSIZE){
ARR =新しい新しいロング[MAXSIZE];
要素= 0;
フロント= 0;
終了= -1;
}
/ **
*尾部から挿入され追加されたデータ、
* /
公共ボイドINSERT(長い値){
IF(エンドarr.length == - 1){
エンド= -1;
}
ARR [終了++] =値、
要素++;
}
/ **
*データを削除し、キューの先頭から削除される
* /
パブリックロング削除(){
ロングARR値= [フロント++];
IF(==フロントarr.length){
フロント= 0;
}
要素- 。
値のリターン;
}
/ **
*データビュー、キューヘッドから眺め
* /
パブリックロングPEEK(){
戻りARR [フロント];
}
/ **
*空のか否かを判断する
* /
)パブリックブールのisEmpty({
エレメント== 0を返す;
}
/ **
*満杯か否かを判断する
* /
パブリックブールisFull(){
;要素== arr.lengthを返します
}
}

おすすめ

転載: www.cnblogs.com/xiaohualu/p/11775708.html