リストスタック構造を実現

スタックは、「最後で、最初のうち」データ構造アルゴリズム、スタック機能は、最後のアウトでの実装です。
私たちは、スタックデータ構造を実装するためのリストコレクションでJavaを使用しています。
パッケージ com.prolog.api.webservicetest; / * 
 * @auther顶风少年
 * @mail [email protected] 
 * @date 2020年1月2日午前11時41 
 * @notify 
 * @version 1.0 
 * / 

インポートjava.util.ArrayListの。
輸入java.util.Arrays。
輸入はjava.util.List; 

パブリック クラススタック{
     プライベートのArrayList <文字列> stackList = 新しい ArrayListを<> (); 

    // 添加元素到栈顶
    公共 無効アドオン(文字列...整数){ 
        リスト <文字列> integers1 = は、Arrays.asList(整数)。
        stackList.addAll(integers1)。 
    } 

    // トップ要素をポップ
    パブリック文字列ポップアップを(){
         IF(stackList.size()== 0 ){
             リターン "-1" ; 
        } 
        戻り stackList.remove(stackList.size() - 1 ); 
    } 

    // 戻り値上部要素ではなく、ポップ
    パブリックストリングgetTop(){
         IF(stackList.size()== 0 ){
             リターン "-1" ; 
        } 
        戻り stackList.get(stackList.sizeを() - 1 ); 
    } 

    // 分析スタックこれは、nullである
    パブリック ブールのisEmpty(){
         リターン stackList.isEmptyを(); 
    }

     //は、スタック内の要素の数を返し
    パブリック整数のgetSize()を{
         リターンstackList.size(); 
    } 

    // 空のスタック
    公共 ボイドclearStack(){ 
        stackList.clear(); 
    } 
}
コードの表示

それ以外の場合は、例外がスローされます、ポップ、そしてトップの要素を取得するとき、スタック内の要素があるかどうかを決定する必要がある、ということに注意してください。

アプリケーションのスタック

図1は、文字列から文字がペアに表示されるかどうかを判断します。

    // シナリオ:ブラケットがペアで表示される必要がありましょう。スタックで互いに相殺
    @Test
     公共 ボイド)(T1 スロー例外{ 
        スタックスタック = 新しい新しいスタック(); 
        文字列STR = "(A + B)*(AC)" ;
         // ループストリング
        のためのINT I; I = 0 <str.length(); I ++ ){
             // 文字列の各要素を取得 
            する文字列をS = String.valueOf(str.charAt(I));
             IF(s.equals( "(")){ // もしである(プッシュ
                stack.add(S); 
            } そう IF(s.equals( ")")){// それが現在の要素のスタックかどうかが決定される)場合には、問題がない場合
                IF (stack.isEmpty()){ 
                    するSystem.out.println( "無効な文字列" );
                     リターン; 
                }  { // 現在のスタックの要素のみ(その後、ポップであってもよいがあり
                    ; stack.popup()
                } 
            } 
        } 
        のSystem.out.println(「法定文字列」); 
    }
コードの表示

 

おすすめ

転載: www.cnblogs.com/zumengjie/p/12133370.html