スタックの中間要素を削除するには、最初に中間要素の上の要素を削除する必要があります。中間要素を削除した後、元の順序を維持するために、それらの上の要素を復元する必要があります。この操作は、以下で説明するように、再帰的な方法を使用して実装できます。
スタックの中央要素を削除するためのステップスタックの特性により、スタックの上部でスタックプレス操作とスタッキング操作のみを実行することができるため、スタックの中間要素を直接削除することはできません。
ステップ1:中間要素の位置を決定 スタックに9つの要素(インデックス0〜8)が含まれている場合、中間要素は位置4にあります。
ステップ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 サイトの他の関連記事を参照してください。