Maison >Java >javaDidacticiel >Supprimer l'élément central d'une pile à 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 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:
É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.
L'exemple suivant supprime l'élément intermédiaire de la pile:
<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>
La sortie du programme ci-dessus est la suivante:
<code>删除中间元素之前的堆栈: [9, 10, 0, 5, 7] 删除中间元素之后的堆栈: [9, 10, 5, 7]</code>
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!