国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
補助スタックを使用
ホームページ Java &#&チュートリアル スタックの下部に要素を挿入するJavaプログラム

スタックの下部に要素を挿入するJavaプログラム

Feb 07, 2025 am 11:59 AM
java

スタックは、LIFO(最後の、最初のアウト)の原則に続くデータ構(gòu)造です。言い換えれば、スタックに最後に追加する要素は、削除される最初の要素です。要素をスタックに追加(またはプッシュ)すると、それらは上に配置されます。すなわち、とりわけ以前に添付されていた要素。

スタックの下部に要素を追加する必要がある特定のシナリオがある場合があります。スタックの下部に要素を追加する方法は複數(shù)あります。それらは -

です
  • 補助スタックを使用
  • 再帰の使用
  • 一時変數(shù)を使用して
  • キューを使用して

補助スタックを使用

Javaの補助スタック(操作を?qū)g行するセカンダリスタック)を使用して、スタックの下部に要素を挿入できます。ここでは、2つのスタック(メインスタックと補助スタック)を使用して、メインスタックの下部に要素を挿入します。

メインスタックには元の要素がありますが、補助スタックは要素の再配置に役立ちます。この方法は理解しやすいです。

ステップ

以下は、補助スタックを使用してスタックの下部に要素を挿入する手順です。

2つのスタックを初期化します。
    メインスタックを作成して、いくつかの要素をプッシュしてから補助スタックを作成します。
  • すべての要素をポップします:次に、メインスタックからすべての要素を削除し、2番目の補助スタックに押し込みます。これは、要素の順序を逆転させるのに役立ちます。
  • 新しい要素を押します:メインスタックが空になったら、新しい要素をメインスタックに押し込む必要があります。または、必要に応じて補助スタックの上に要素を押すこともできます。
  • 元の順序を復(fù)元します:補助スタックからすべての要素をポップし、それらをメインスタックに押し戻します。これにより、元の要素の順序が復(fù)元されます。
  • 以下は、補助スタックを使用して下部に要素を追加する方法の例です。
  • 上記のプログラムでは、要素1、2、3、および4をスタックに押し込むことから始めます。次に、これらの要素を別のスタックに転送します。その後、ターゲット要素をメインスタックに挿入します。最後に、すべての要素を補助スタックから戻します。

再帰の使用

import java.util.Stack;
public class InsertAtBottomUsingTwoStacks {    
   public static void insertElementAtBottom(Stack<Integer> mainStack, int x) {
      // Create an extra auxiliary stack
      Stack<Integer> St2 = new Stack<>();
      
      /* Step 1: Pop all elements from the main stack 
      and push them into the auxiliary stack */
      while (!mainStack.isEmpty()) {
         St2.push(mainStack.pop());
      }

      // Step 2: Push the new element into the main stack
      mainStack.push(x);

      /* Step 3: Restore the original order by popping each 
      element from the auxiliary stack and push back to main stack */
      while (!St2.isEmpty()) {
         mainStack.push(St2.pop());
      }
   }
   public static void main(String[] args) {
      Stack<Integer> stack1 = new Stack<>();
      stack1.push(1);
      stack1.push(2);
      stack1.push(3);
      stack1.push(4);

      System.out.println("Original Stack: " + stack1);
      insertElementAtBottom(stack1, 0);
      System.out.println("Stack after inserting 0 at the bottom: " + stack1);
   }
}
再帰は、スタックの下部に要素を挿入するもう1つの方法です。このアプローチでは、再帰関數(shù)を使用して、空になるまでスタックからすべての要素をポップし、空になるとスタックに新しい要素を挿入し、要素をスタックに戻します。 >

ステップ

  • ベースケース:スタックが空であるかどうかを確認します??栅螆龊悉?、新しい要素をスタックに押し込みます。
  • 再帰的なケース:スタックが空になっていない場合、最上部要素をポップして、関數(shù)を再帰的に呼び出します。
  • 要素の復(fù)元:
  • 新しい要素の挿入が完了したら、以前にポップした要素をスタックに戻す必要があります。
  • 上記のプログラムでは、スタックの下部に新しい要素を挿入する再帰関數(shù)を定義し、スタックが空になるまでスタックから要素をポップし続け、新しい要素を挿入してその後、以前の要素をスタックに復(fù)元しました 一時変數(shù)を使用して

    import java.util.Stack;
    public class InsertAtBottomUsingTwoStacks {    
       public static void insertElementAtBottom(Stack<Integer> mainStack, int x) {
          // Create an extra auxiliary stack
          Stack<Integer> St2 = new Stack<>();
          
          /* Step 1: Pop all elements from the main stack 
          and push them into the auxiliary stack */
          while (!mainStack.isEmpty()) {
             St2.push(mainStack.pop());
          }
    
          // Step 2: Push the new element into the main stack
          mainStack.push(x);
    
          /* Step 3: Restore the original order by popping each 
          element from the auxiliary stack and push back to main stack */
          while (!St2.isEmpty()) {
             mainStack.push(St2.pop());
          }
       }
       public static void main(String[] args) {
          Stack<Integer> stack1 = new Stack<>();
          stack1.push(1);
          stack1.push(2);
          stack1.push(3);
          stack1.push(4);
    
          System.out.println("Original Stack: " + stack1);
          insertElementAtBottom(stack1, 0);
          System.out.println("Stack after inserting 0 at the bottom: " + stack1);
       }
    }
    
    一時変數(shù)を使用して指定されたタスクを達成することもできます。この変數(shù)を使用して、スタックを操作する際に要素を保存します。この方法は簡単で、簡単なループを使用して実裝できます。

    ステップ

    以下は、一時的な変數(shù)を使用してスタックの下部に要素を挿入する手順です。

    一時変數(shù)を初期化します:

    変數(shù)を作成して、スタックを繰り返して要素を一時的に保持します。

    転送要素:

    その後、ループを使用してスタックから要素をポップし、それらの要素を一時変數(shù)に保存します。

      新しい要素を挿入します:
    • スタックが空になったら、新しい要素をスタックに押し込む必要があります。 要素の復(fù)元:
    • 要素を挿入した後、一時変數(shù)から要素をスタックに戻します。
    • このプログラムでは、スタックを操作しながら要素を保持するために一時的な配列を使用しました。次に、新しい要素をスタックに挿入し、元の要素をスタックに復(fù)元します。 キューを使用して
    • このアプローチでは、スタックの下部に新しい要素を挿入しながら、キューを使用して一時的に要素を保持します。この方法は、要素の順序を管理するためのより良い方法です。キューを使用すると、既存の要素を改ざんすることなく、スタックに新しい要素を作成できます。 ステップ
    • 以下は、キューを使用してスタックの下部に要素を挿入するための手順です -
    • キューの初期化:
    キューを作成して、スタックから要素を保持します。

    転送要素:
    import java.util.Stack;
    public class InsertAtBottomUsingRecursion {
       public static void insertAtElementBottom(Stack<Integer> st, int x) {
          // Base case: If the stack is empty, push the new element
          if (st.isEmpty()) {
             st.push(x);
             return;
          }
          // Recursive case: Pop the top element
          int top = st.pop();
          
          // Call the function recursively
          insertAtElementBottom(st, x);
          
          // Restore the top element into the stack
          st.push(top);
       }
       
       public static void main(String[] args) {
          Stack<Integer> st = new Stack<>();
          st.push(1);
          st.push(2);
          st.push(3);
          st.push(4);
       
          System.out.println("Original Stack: " + st);
          insertAtElementBottom(st, 0);
          System.out.println("Stack after inserting 0 at the bottom: " + st);
       }
    }
    
    スタックから要素をポップして、それらをキューに入れてください。

    新しい要素を挿入します:

    新しい要素をスタックに押し込みます。

    要素の復(fù)元:

    キューから要素をdequeueし、それらをスタックに押し戻します。

      output
    • 以下は、上記のコードの出力です -
      import java.util.Stack;
      public class InsertAtBottomUsingTwoStacks {    
         public static void insertElementAtBottom(Stack<Integer> mainStack, int x) {
            // Create an extra auxiliary stack
            Stack<Integer> St2 = new Stack<>();
            
            /* Step 1: Pop all elements from the main stack 
            and push them into the auxiliary stack */
            while (!mainStack.isEmpty()) {
               St2.push(mainStack.pop());
            }
      
            // Step 2: Push the new element into the main stack
            mainStack.push(x);
      
            /* Step 3: Restore the original order by popping each 
            element from the auxiliary stack and push back to main stack */
            while (!St2.isEmpty()) {
               mainStack.push(St2.pop());
            }
         }
         public static void main(String[] args) {
            Stack<Integer> stack1 = new Stack<>();
            stack1.push(1);
            stack1.push(2);
            stack1.push(3);
            stack1.push(4);
      
            System.out.println("Original Stack: " + stack1);
            insertElementAtBottom(stack1, 0);
            System.out.println("Stack after inserting 0 at the bottom: " + stack1);
         }
      }
      
      この実裝では、一時的な時間のために要素を保持するためにキューを使用しました。最初に、既存の要素をスタックからキューに転送します。次に、新しい要素をスタックに押し込み、元の要素をキューからスタック

      に戻します

      注:キューの代わりに、配列、LinkedList、ArrayListなどの他のデータ構(gòu)造を使用できます。

    以上がスタックの下部に要素を挿入するJavaプログラムの詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

    このウェブサイトの聲明
    この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

    ホットAIツール

    Undress AI Tool

    Undress AI Tool

    脫衣畫像を無料で

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード寫真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    寫真から衣服を削除するオンライン AI ツール。

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中國語版

    SublimeText3 中國語版

    中國語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統(tǒng)合開発環(huán)境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    vscode settings.jsonの場所 vscode settings.jsonの場所 Aug 01, 2025 am 06:12 AM

    settings.jsonファイルは、ユーザーレベルまたはワークスペースレベルのパスにあり、VSCODE設(shè)定のカスタマイズに使用されます。 1。ユーザーレベルのパス:WindowsはC:\ users \\ appdata \ roaming \ code \ user \ settings.json、macos is/users //settings.json、linux is /home/.config/code/user/settings.json; 2。Workspace-Level Path:.vscode/settings Project Root Directoryの設(shè)定

    JDBCを使用してJavaのトランザクションを処理する方法は? JDBCを使用してJavaのトランザクションを処理する方法は? Aug 02, 2025 pm 12:29 PM

    JDBCトランザクションを正しく処理するには、最初に自動コミットモードをオフにし、次に複數(shù)の操作を?qū)g行し、結(jié)果に応じて最終的にコミットまたはロールバックする必要があります。 1。CONN.SETAUTOCOMMIT(FALSE)を呼び出して、トランザクションを開始します。 2。挿入や更新など、複數(shù)のSQL操作を?qū)g行します。 3。すべての操作が成功した場合はconn.commit()を呼び出し、データの一貫性を確保するために例外が発生した場合はconn.rollback()を呼び出します。同時に、リソースを使用してリソースを管理し、例外を適切に処理し、接続を密接に接続するために、接続の漏れを避けるために使用する必要があります。さらに、接続プールを使用してセーブポイントを設(shè)定して部分的なロールバックを達成し、パフォーマンスを改善するためにトランザクションを可能な限り短く保つことをお勧めします。

    SpringとGuiceを使用したJavaでの依存関係のマスタリング SpringとGuiceを使用したJavaでの依存関係のマスタリング Aug 01, 2025 am 05:53 AM

    依存関係の指示(di)isadesignpatternwhere objectsreceivedenciesiesedternally、setter、orfieldinoffiction.2.springframeworkusessaNnotationslike@component、@service、@autowiredwithjava Basedconfi

    Javaでカレンダーを操作する方法は? Javaでカレンダーを操作する方法は? Aug 02, 2025 am 02:38 AM

    Java.Timeパッケージのクラスを使用して、古い日付とカレンダーのクラスを置き換えます。 2。LocalDate、LocalDateTime、LocalTimeを通じて現(xiàn)在の日付と時刻を取得します。 3。of()メソッドを使用して特定の日付と時刻を作成します。 4.プラス/マイナスメソッドを使用して、時間を不正に増加させて短縮します。 5. ZonedDateTimeとZoneIDを使用して、タイムゾーンを処理します。 6。DateTimeFormatterを介したフォーマットおよび解析の文字列。 7.インスタントを使用して、必要に応じて古い日付型と互換性があります?,F(xiàn)代のJavaでの日付処理は、java.timeapiを使用することを優(yōu)先する必要があります。

    Java仮想マシン(JVM)內(nèi)部の理解 Java仮想マシン(JVM)內(nèi)部の理解 Aug 01, 2025 am 06:31 AM

    thejvmenablesjavaの「writeonce、runany where "capabilitybyexcuting byteCodeThethermainComponents:1。theClassLoaderSubSystemloads、links、andinitializes.classfilesusingbootStrap、拡張、およびアプリケーションクラスローロー、

    Google Chromeはローカルファイルを開くことができません Google Chromeはローカルファイルを開くことができません Aug 01, 2025 am 05:24 AM

    chromecanopenlocalfileslikehtmlandpdfsbyusing "openfile" ordraggingthemintotheblowser;

    Javaフレームワークの比較:Spring Boot vs Quarkus vs Micronaut Javaフレームワークの比較:Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

    Pre-formanceTartuptimeMemoryusage、quarkusandmicronautleadduetocopile-timeprocessingingandgraalvsupport、withquarkusoftentylightbetterine serverlessシナリオ。

    ネットワークポートとファイアウォールの理解 ネットワークポートとファイアウォールの理解 Aug 01, 2025 am 06:40 AM

    ネットワークポートアンドファイアワルクトグテルトエナブルコマニケーションwhiledensuringsecurity.1.networksarevirtualendpointsnumbered0–655 35、withwell-knownportslike80(http)、443(https)、22(ssh)、および25(smtp)識別pecificservices.2.portsoperateovertcp(信頼できる、c

    See all articles