Rumah >Java >javaTutorial >Padam elemen tengah timbunan di java

Padam elemen tengah timbunan di java

DDD
DDDasal
2025-02-07 11:14:11422semak imbas

Delete middle element of a stack in Java

Untuk memadam elemen pertengahan timbunan, anda perlu mengeluarkan elemen di atas elemen pertengahan. Selepas mengeluarkan unsur -unsur perantaraan, unsur -unsur di atasnya perlu dipulihkan untuk mengekalkan urutan asal. Operasi ini boleh dilaksanakan menggunakan kaedah rekursif, seperti yang diterangkan di bawah.

Oleh kerana ciri -ciri timbunan, kita hanya boleh melakukan operasi menekan dan menyusun operasi di bahagian atas timbunan, jadi kita tidak boleh memadamkan unsur -unsur perantaraan timbunan secara langsung.

langkah untuk memadam elemen tengah timbunan

Langkah 1: Tentukan kedudukan elemen pertengahan Pertama, anda perlu menentukan elemen pertengahan timbunan, kaedahnya adalah seperti berikut:

    Jika timbunan mengandungi 9 elemen (indeks 0 hingga 8), elemen pertengahan berada pada kedudukan 4.
  • Jika timbunan mengandungi bilangan elemen (contohnya, 4 elemen), padamkan yang pertama dari dua elemen pertengahan.
  • Jika timbunan mengandungi hanya satu elemen, elemen akan dianggap sebagai elemen pertengahan dan dipadam.

Langkah 2: Recursif membuang elemen di bahagian atas timbunan sehingga elemen pertengahan dicapai.

Langkah 3: Setelah elemen pertengahan dicapai, hanya pop keluar dari timbunan dan memasang semula timbunan ke urutan asalnya.

Program

Contoh berikut memadamkan elemen pertengahan timbunan:

<code class="language-java">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);
    }
}</integer></integer></code>
output program di atas adalah seperti berikut:

<code>删除中间元素之前的堆栈: [9, 10, 0, 5, 7]
删除中间元素之后的堆栈: [9, 10, 5, 7]</code>
Penjelasan

Dalam kaedah

, kita panggil kaedah main, parameter adalah indeks timbunan dan unsur -unsur perantaraan. deleteMidElement()

Dalam kaedah

, kita periksa sama ada deleteMidElement() sama dengan 0. Jika benar, bahagian atas timbunan adalah elemen pertengahan; . currentIndex

Atas ialah kandungan terperinci Padam elemen tengah timbunan di java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn