Maison > Java > javaDidacticiel > Vérifiez si les éléments de pile sont par paire consécutifs en Java

Vérifiez si les éléments de pile sont par paire consécutifs en Java

Mary-Kate Olsen
Libérer: 2025-02-07 11:31:10
original
929 Les gens l'ont consulté

Check if stack elements are pairwise consecutive in Java

La pile

est une structure de données de base en informatique et est généralement utilisée pour son attribut dernier-in-premier-out (LIFO) . Lorsque vous utilisez la pile, vous pouvez rencontrer un problème intéressant, c'est-à-dire pour vérifier si les éléments de la pile sont en paires continues. Dans cet article, nous apprendrons à résoudre ce problème à l'aide de Java pour garantir que la solution est efficace et claire.

Instruction Problème

Compte tenu d'une pile entière, la tâche consiste à déterminer si les éléments de la pile sont en paires continues. Si la différence entre deux éléments est exactement 1, elles sont considérées comme continues.

Entrez

<code>4, 5, 2, 3, 10, 11</code>
Copier après la connexion

sortie

<code>元素是否成对连续?<br>true</code>
Copier après la connexion

Étape pour vérifier si les éléments de pile sont appariés et continue

Voici des étapes pour vérifier si les éléments de pile sont appariés et continus:

  • Vérifier la taille de la pile: Si le nombre d'éléments sur la pile est impair, le dernier élément ne sera pas apparié, il doit donc être ignoré pour l'inspection par paire.
  • Vérification basée sur la paire: Boucle à travers la pile, éclatez les éléments par paires et vérifiez si elles sont continues.
  • Restaurer la pile: Après avoir effectué un chèque, la pile doit être restaurée à son état d'origine.

Programme Java utilisé pour vérifier si les éléments de pile sont en paires et contigu

Ce qui suit est un programme en Java qui vérifie si les éléments de pile sont en paires et contiguës:

import java.util.Stack;

public class PairwiseConsecutiveChecker {
    public static boolean areElementsPairwiseConsecutive(Stack<Integer> stack) {
        // 基本情况:如果堆栈为空或只有一个元素,则返回 true
        if (stack.isEmpty() || stack.size() == 1) {
            return true;
        }

        // 使用临时堆栈在检查时保存元素
        Stack<Integer> tempStack = new Stack<>();
        boolean isPairwiseConsecutive = true;

        // 成对处理堆栈元素
        while (!stack.isEmpty()) {
            int first = stack.pop();
            tempStack.push(first);

            if (!stack.isEmpty()) {
                int second = stack.pop();
                tempStack.push(second);

                // 检查这对元素是否连续
                if (Math.abs(first - second) != 1) {
                    isPairwiseConsecutive = false;
                }
            }
        }

        // 恢复原始堆栈
        while (!tempStack.isEmpty()) {
            stack.push(tempStack.pop());
        }

        return isPairwiseConsecutive;
    }

    public static void main(String[] args) {
        Stack<Integer> stack = new Stack<>();
        stack.push(4);
        stack.push(5);
        stack.push(2);
        stack.push(3);
        stack.push(10);
        stack.push(11);

        boolean result = areElementsPairwiseConsecutive(stack);

        System.out.println("元素是否成对连续? " + result);
    }
}
Copier après la connexion

Explication

Restaurer la pile: Puisque nous avons modifié la pile lors de la vérification de la droite, il est très important de le restaurer à son état d'origine une fois le chèque terminé. Cela garantit que la pile reste inchangée pour toute opération ultérieure.

Case de bord: Cette fonction gère les cas Edge, tels qu'une pile vide ou une pile avec un seul élément, retournant vrai car ces cas satisfont de manière insignifiante.

Complexité temporelle: La complexité temporelle de cette méthode est o (n) , où n est le nombre d'éléments dans la pile. En effet, nous ne traversons la pile qu'une seule fois, faisant éclater et pressant des éléments au besoin.

Complexité de l'espace: Parce que la pile temporaire est utilisée, la complexité de l'espace est également o (n) .

Conclusion

Cette solution fournit un moyen efficace de vérifier si les éléments de la pile sont en paires continues. La clé consiste à traiter la pile par paires et à vous assurer que la pile est restaurée à son état d'origine après l'opération. Cette approche maintient l'intégrité de la pile tout en fournissant une solution claire et efficace.

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 articles par auteur
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