即ちスタックの特性は、最終アナログのアレイ用いてスタックを、この特性を達成するためにスタックポインタ(インデックス)によって主に定義されます。
ポインタの初期位置は-1
以下のコードを示しています。
パッケージcom.ebiz.stack; / ** * @author YHJ * @Create 2019年7月20日14時20分 *アナログスタック配列 * / パブリック クラスArrayStack { プライベート int型maxSizeと; プライベート int型 [] ARR; // 配列のスタックシミュレーション プライベート INTトップ= -1 ; // コンストラクタは、配列を初期化 パブリック(ArrayStack INT maxSizeの){ この .maxSizeが= 、maxSizeの この .arr = 新しい新しい INT ; maxSizeのを] } // スタックフル検証 公開 ブールisFull(){ 戻りトップ- == maxSizeの1。; } // 空の確認 パブリック ブールのisEmptyを(){ 戻りトップ== -1 ; } // スタック 公共 ボイドプッシュ(INTの値){ IF (isFull() ){ System.out.printlnは( "フルスタック" ); リターン; } トップ ++ ; ARR [トップ] = 値; } // ポップ 公共 のintPOP(){ IF (のisEmpty()){ スロー 新新のRuntimeException( "空のスタック" ); } int型の値= ARR [トップ]; トップ - ; 戻り値; } // 一筆スタック 公共 ボイドリスト(){ IF (のisEmpty()){ スロー 新しい新規のRuntimeException( "空のスタック" ); } 一方、(真の){ IF (のisEmpty()){ するSystem.out.println( "空のスタック" )。 BREAK ; } System.out.printf( "アウトバウンド要素は、N-%D%である" 、ARR [トップ]); トップ - ; } } }
アナログスタックアレイは、与えられたポップは、プッシュは、リストのいくつかの簡単な方法は、テストクラスは、以下の通りであります
パッケージcom.ebiz.stack; / ** * @author YHJ * @Create 2019年7月20日15時11 * / パブリック クラスのテスト{ 公共 静的 ボイドメイン(文字列[]引数){ // 初期化スタック ArrayStackスタック= 新しい新 ArrayStack(5 ); // 要素を追加 するために(INT I = 1; I <= 5; I ++ ){ stack.push(I); } // スタック取得 するSystem.out.printlnを(stack.pop())。 System.out.println(stack.pop()); // スタックトラバース stack.list()。 } }