Maison > Java > javaDidacticiel > Supprimer l'élément central d'une pile à Java

Supprimer l'élément central d'une pile à Java

DDD
Libérer: 2025-02-07 11:14:11
original
370 Les gens l'ont consulté

Delete middle element of a stack in Java

Pour supprimer l'élément intermédiaire de la pile, vous devez d'abord supprimer l'élément au-dessus de l'élément intermédiaire. Après avoir retiré les éléments intermédiaires, les éléments au-dessus d'eux doivent être restaurés pour maintenir l'ordre d'origine. Cette opération peut être implémentée à l'aide d'une méthode récursive, comme décrit ci-dessous.

En raison des caractéristiques de la pile, nous ne pouvons effectuer que des opérations de pressage et d'empilement de pile en haut de la pile, nous ne pouvons donc pas supprimer directement les éléments intermédiaires de la pile.

Étape pour supprimer l'élément central de la pile

Étape 1: Déterminez la position de l'élément intermédiaire Tout d'abord, vous devez déterminer l'élément intermédiaire de la pile, la méthode est la suivante:

  • Si la pile contient 9 éléments (index 0 à 8), l'élément intermédiaire est en position 4.
  • Si la pile contient un nombre uniforme d'éléments (par exemple, 4 éléments), supprimez le premier des deux éléments intermédiaires.
  • Si la pile ne contient qu'un seul élément, l'élément sera traité comme un élément intermédiaire et supprimé.

Étape 2: Retirez récursivement l'élément en haut de la pile jusqu'à ce que l'élément intermédiaire soit atteint.

Étape 3: Une fois l'élément intermédiaire atteint, sortez-le simplement de la pile et remontez la pile à son ordre d'origine.

Programme

L'exemple suivant supprime l'élément intermédiaire de la pile:

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);
    }
}
Copier après la connexion

La sortie du programme ci-dessus est la suivante:

<code>删除中间元素之前的堆栈: [9, 10, 0, 5, 7]
删除中间元素之后的堆栈: [9, 10, 5, 7]</code>
Copier après la connexion

Explication

Dans la méthode main, nous appelons la méthode deleteMidElement(), les paramètres sont l'index de la pile et des éléments intermédiaires.

Dans la méthode deleteMidElement(), nous vérifions si currentIndex est égal à 0. Si c'est vrai, le haut de la pile est un élément intermédiaire; . deleteMidElement()

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers numéros
Impossible d'installer Java
Depuis 1970-01-01 08:00:00
0
0
0
Java peut-il être utilisé comme backend du Web ?
Depuis 1970-01-01 08:00:00
0
0
0
Installer JAVA
Depuis 1970-01-01 08:00:00
0
0
0
Aide : Données chiffrées JAVA Décryptage PHP
Depuis 1970-01-01 08:00:00
0
0
0
Est-ce en langage Java ?
Depuis 1970-01-01 08:00:00
0
0
0
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal