Maison >Java >javaDidacticiel >Comment les parenthèses affectent-elles la conversion d'expression Infix en Postfix ?
Gestion des parenthèses dans la conversion d'expressions infixées en suffixes
La conversion d'expressions infixées en expressions postfixes implique la gestion des parenthèses. Les parenthèses peuvent introduire plusieurs niveaux de considérations de priorité, qui doivent être prises en compte pour garantir une évaluation correcte.
Dans une expression infixée, les parenthèses peuvent agir comme des éléments de regroupement qui modifient l'ordre des opérations. Par exemple, alors que l'expression "2 3 4" est évaluée à 14, l'expression "(2 3) 4" est évaluée à 20 car la parenthèse force l'addition à se produire avant la multiplication.
Pour gérer les parenthèses dans la conversion, nous devons ajuster la logique comme suit :
// opening ( if (in_fix.peek().type == 4) { post_fix.push(in_fix.pop()); } //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 ) }
Lorsque nous rencontrons une parenthèse ouvrante, elle est poussée sur la pile. Lorsqu'une parenthèse fermante est rencontrée, la pile est traitée tant qu'elle contient des éléments qui ne sont pas des parenthèses ouvrantes. Ces éléments sont ajoutés à la chaîne suffixe. Une fois que la pile est vide ou que l'élément actuel est une parenthèse ouverte, la parenthèse fermante et la parenthèse ouverte correspondante sont extraites de la pile et de la pile infixe, garantissant ainsi le maintien de la préséance des expressions entre parenthèses.
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!