ホームページ >Java >&#&チュートリアル >特定のスタックの要素を昇順で並べ替えるためのJavaプログラム

特定のスタックの要素を昇順で並べ替えるためのJavaプログラム

Barbara Streisand
Barbara Streisandオリジナル
2025-02-07 11:34:12341ブラウズ

Java program to sort the elements of a given stack in ascending order

このチュートリアルでは、Javaを使用してスタック要素を昇順で並べ替える方法をガイドします。スタックは、最後のファーストアウト(LIFO)の原則に従って、コンピューターサイエンスの基本的なデータ構造です。

追加の一時スタックを使用し、詳細な段階的な命令を提供し、完全なコードの例を含むシンプルで効率的な方法を分解します。このチュートリアルは、スタック操作の理解を高め、Javaプログラミングスキルを向上させたい人に最適です。

java

を使用して、昇順でスタックを並べ替えます

スタックは本の山のようなもので、上部の本だけを取ることができます。つまり、スタックはファーストアウト(LIFO)モードに保存されます。最後に追加されたアイテムは、最初の削除されたアイテムです。補助スタックを使用してスタック要素をソートする手順を次に示します。

ステップ1:一時的なスタックを作成してくださいここにソートされた要素を一時的に保存します。

ステップ2:要素を並べ替えスタック要素をソートするには、次の手順に従ってください。

元のスタックにアイテムが含まれている場合。
  • 元のスタックから上部のアイテムを削除します。
  • 一時的なスタックが空でなく、その上のアイテムがフェッチしたものよりも大きい場合は、プロジェクトを上に置くことができるまで、一時スタックのアイテムを元のスタックに戻します。
  • 削除したアイテムを一時的なスタックに入れます。
ステップ3:すべてのアイテムが一時的なスタックになったら、元のスタックに戻り、元のスタックに戻します。今、彼らはソートされています!

以下は例です:

結論

<code class="language-java">import java.util.Stack;

public class StackSorter {
    public static void sortStack(Stack<integer> stack) {
        Stack<integer> tempStack = new Stack<>();

        while (!stack.isEmpty()) {
            int temp = stack.pop();

            while (!tempStack.isEmpty() && tempStack.peek() > temp) {
                stack.push(tempStack.pop());
            }
            tempStack.push(temp);
        }

        while (!tempStack.isEmpty()) {
            stack.push(tempStack.pop());
        }
    }

    public static void main(String[] args) {
        Stack<integer> stack = new Stack<>();
        stack.push(34);
        stack.push(3);
        stack.push(31);
        stack.push(98);
        stack.push(92);
        stack.push(23);

        System.out.println("原始堆栈: " + stack);
        sortStack(stack);
        System.out.println("已排序堆栈: " + stack);
    }
}</integer></integer></integer></code>
別のスタックを使用すると、複雑なアルゴリズムなしで昇順でスタック要素を簡単に並べ替えることができます。

以上が特定のスタックの要素を昇順で並べ替えるためのJavaプログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。