Maison  >  Article  >  Java  >  Quel est l'impact des parenthèses sur la conversion des expressions infixes en suffixes ?

Quel est l'impact des parenthèses sur la conversion des expressions infixes en suffixes ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-11 15:24:02996parcourir

How do parentheses impact the conversion of infix expressions to postfix?

Gestion des parenthèses dans la conversion d'expressions infixes en postfixes

Lors de la conversion d'expressions infixes en suffixes, les parenthèses jouent un rôle central dans la détermination de l'ordre de préséance. Voici comment gérer les parenthèses et plusieurs couches de parenthèses dans votre code :

Dans la méthode toPostFix(), lorsque vous rencontrez une parenthèse gauche (:

// opening (
if (in_fix.peek().type == 4) {   
    post_fix.push(in_fix.pop());
}

Lorsque vous rencontrez une parenthèse droite parenthèse ):

//closing )
if(in_fix.peek().type == 5){
    while(!(post_fix.isEmpty() || post_fix.peek().type == 4)){
         postfixstr.append(post_fix.pop());
    }
    if (post_fix.isEmpty())
        ; // ERROR - unmatched )
    else
        post_fix.pop(); // pop the (
    in_fix.pop(); // pop the )
} 

Ce code garantit que :

  • Lorsque vous rencontrez une parenthèse gauche (, elle est poussée sur la pile post_fix.
  • Lorsque vous rencontrez une parenthèse droite), vous extrayez des éléments de la pile et les ajoutez à la chaîne de sortie postfixstr jusqu'à ce que vous atteigniez une pile vide ou que vous rencontriez une parenthèse gauche ( encore une fois.
  • Si, pendant ce processus, la pile est vide, cela signifie il y a une parenthèse droite sans correspondance ; cependant, si la pile contient une parenthèse gauche, elle est supprimée.
  • Enfin, la parenthèse droite elle-même est supprimée de la pile d'entrée in_fix.

Par en implémentant cette logique, votre code sera capable de gérer plusieurs couches de parenthèses et de convertir correctement les expressions infixes contenant des parenthèses en suffixe expressions.

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!

Déclaration:
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