によって実装スタック配列関数のJavaのシーケンス

1.スタックインタフェースを定義

1  パブリック インターフェイススタック<T> {
 2  // リターンスタックサイズ
3。     公共 int型のサイズ();
 4  // スタックが空であるか否かを判断する
5。     パブリック ブールのisEmpty();
 6  // スタック
。7      公共 ボイドプッシュ(T T) ;
 8  // スタック
9      パブリックオブジェクトPOP()はスローStackEmptyExceptionを、
 10  //は、スタックの先頭を返す
。11      公衆オブジェクトPEEK()スローStackEmptyExceptionを、
 12です }

2.カスタム例外

1  パブリック クラス StackEmptyException 延びのRuntimeExceptionを{
 2  // 新しいクラスの例外スタックが空である
3。     公的{StackEmptyException(文字列eMeaasge)
 4。         スーパー(eMeaasge);
 5      }
 。6 }

3.アレイスタックインタフェースを実装

1  パブリック クラス StackArray <T> を実装スタック<T> {
 2  // スタック2の初期容量; 
3      プライベート 最終 INT LEN = 2 ;
 4  //     定義されたポインタのスタック; 
5      プライベート INT トップ;
 6  //     アレイスタック達成
7      プライベートT []の要素;
 8  //     コンストラクタは初期化
9。     公共StackArray(){
 10          トップ= -1 ;
 11          要素=(T [])新しい新しいオブジェクト[LEN];
 12である     }
 13であります 
14      @Override
 15      公共 int型のサイズ(){
 16          リターントップ+ 1 17      }
 18  
19      @Override
 20      パブリック ブールのisEmpty(){
 21          リターントップ<0 22      }
 23  
24      @Override
 25      公共 ボイドプッシュ(T tの){
 26          であればこの .size()== elements.length){
 27           この.expandSize()。
28          }
 29  //        ++トップ、最初の増分、及び、割り当てられた
30個           の要素[トップ++] = T;
 31である     }
 32  
33である     @Override
 34は     パブリック(オブジェクトPOP)スローStackEmptyException {
 35          IFこの.isEmpty()){
 36               新しい新しい StackEmptyExceptionを( "現在のスタックが空である、スタックはできません" );
 37          }
 38である          オブジェクトOBJ = エレメント[トップ];
 39  //         top--、最初の割り当て、その後マイナスから
40個          の要素[トップ- ] = NULL ;
 41は、         戻りOBJと、
 42     }
 43である 
44である     @Override
 45      パブリックオブジェクトPEEK()がスローStackEmptyException {
 46である         IFこの.isEmpty()){
 47               新しい新 StackEmptyException( "現在のスタックが空である、なし内容" );
 48          }
 49の         リターン要素[上];
 50      }
 51  // スタック容量の拡張
52は、     公共 ボイドexpandSize(){
 53であり、          T [] = A(T [])新しい新しいオブジェクト[elements.length * 2 ];
 54である         ためINTi = 0; iはelements.length <; iは++ ){
 55              [I] =の要素[i]は、
56          }
 57個          の要素= 58      }
 59 }

4.テスト

1つの パブリック クラスメイン{
 2  
3      公共 静的 ボイドメイン(文字列[]引数){
 4          StackArray <整数> stackArray = 新しい StackArray <整数> ();
5          のSystem.out.println(stackArray.size())。
6         / * stackArray.pop()。* / 
7          stackArray.push(1 )。
8          stackArray.push(2 )。
9          stackArray.push(5 )。
10          stackArray.push(6 )。
11          のSystem.out.println(stackArray.size())。
12         System.out.println(stackArray.peek())。
13  
14  
15      }
 16 }

5.試験結果

 

おすすめ

転載: www.cnblogs.com/WhiperHong/p/11520210.html