ホームページ > Java > &#&チュートリアル > Javaのスタックの中間要素を削除します

Javaのスタックの中間要素を削除します

DDD
リリース: 2025-02-07 11:14:11
オリジナル
334 人が閲覧しました

Delete middle element of a stack in Java

スタックの中間要素を削除するには、最初に中間要素の上の要素を削除する必要があります。中間要素を削除した後、元の順序を維持するために、それらの上の要素を復元する必要があります。この操作は、以下で説明するように、再帰的な方法を使用して実装できます。

スタックの特性により、スタックの上部でスタックプレス操作とスタッキング操作のみを実行することができるため、スタックの中間要素を直接削除することはできません。

スタックの中央要素を削除するためのステップ

ステップ1:中間要素の位置を決定 スタックに9つの要素(インデックス0〜8)が含まれている場合、中間要素は位置4にあります。

    スタックに偶数の要素(4つの要素など)が含まれている場合、2つの中間要素のうち最初の要素を削除します。
  • スタックに1つの要素のみが含まれている場合、要素は中間要素として扱われ、削除されます。
  • ステップ2:
中間要素に到達するまで、スタックの上部にある要素を再帰的に削除します。

ステップ3:

中間要素に到達したら、スタックからポップアウトして、スタックを元の順序に再組み立てします。

プログラム

次の例では、スタックの中間要素を削除します。

上記のプログラムの出力は次のとおりです。

説明
import java.util.Stack;

public class Example {
    public static void deleteMidElement(Stack<Integer> stack, int currentIndex) {
        if (currentIndex == 0) {
            stack.pop();
            return;
        }

        int temp = stack.pop();
        deleteMidElement(stack, currentIndex - 1);
        stack.push(temp);
    }

    public static void main(String args[]) {
        Stack<Integer> stack = new Stack<>();
        stack.push(9);
        stack.push(10);
        stack.push(0);
        stack.push(5);
        stack.push(7);
        int N = stack.size() / 2;

        System.out.println("删除中间元素之前的堆栈: " + stack);
        deleteMidElement(stack, N);
        System.out.println("删除中间元素之后的堆栈: " + stack);
    }
}
ログイン後にコピー

メソッドでは、
<code>删除中间元素之前的堆栈: [9, 10, 0, 5, 7]
删除中间元素之后的堆栈: [9, 10, 5, 7]</code>
ログイン後にコピー
メソッドを呼び出します。パラメーターは、スタックのインデックスと中間要素です。

メソッドでは、mainが0に等しいかどうかを確認します。真実の場合、スタックの上部は中間要素です。 。 deleteMidElement()

以上がJavaのスタックの中間要素を削除しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
ヘルプ: JAVA 暗号化データ PHP 復号化
から 1970-01-01 08:00:00
0
0
0
JAVAをインストールする
から 1970-01-01 08:00:00
0
0
0
Javaをインストールできません
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート