Maison  >  Article  >  Java  >  Comment analyser une expression arithmétique et construire une représentation arborescente en Java ?

Comment analyser une expression arithmétique et construire une représentation arborescente en Java ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-25 05:36:02823parcourir

How to Parse an Arithmetic Expression and Construct a Tree Representation in Java?

Analyser une expression arithmétique et construire un arbre à partir de celle-ci en Java

Dans cet article, nous approfondirons les subtilités de l'analyse d'un expression arithmétique et en construisant une représentation arborescente en Java.

Introduction

Pour commencer, nous supposerons que l'expression d'entrée est fournie sous forme de chaîne et est conforme avec les règles suivantes :

  • Les nombres négatifs doivent être placés entre parenthèses.
  • Les parenthèses doivent être équilibrées de manière cohérente.

Construire l'arbre

À la base, la construction d'un arbre à partir d'une expression arithmétique implique l'utilisation d'une pile. Au fur et à mesure que nous analysons l'expression caractère par caractère, nous plaçons les opérateurs et les valeurs numériques sur la pile. Les opérateurs ont une priorité associée, nous permettant d'évaluer et de combiner les sous-expressions au fur et à mesure que nous les rencontrons.

Approche

  1. Initialiser la pile : Commencez avec une pile vide.
  2. Analysez l'expression : Visitez chaque caractère de la chaîne d'expression.
  3. Gérez les parenthèses : S'il s'agit d'une parenthèse est rencontré, placez-le sur la pile ou évaluez la sous-expression entre parenthèses.
  4. Opérateurs de gestion : Lorsque vous rencontrez un opérateur, comparez sa priorité à la "préséance la plus élevée" actuelle dans le empiler. Si le courant est inférieur à la priorité du nouvel opérateur, poussez le nouvel opérateur sur la pile. Sinon, évaluez les opérateurs sur la pile jusqu'à ce que la priorité du nouvel opérateur soit supérieure ou égale.
  5. Gérer les valeurs numériques : Poussez les valeurs numériques directement sur la pile.
  6. Évaluez la pile :Une fois tous les caractères traités, évaluez les opérateurs restants sur la pile de haut en bas.

Exemple

Considérez le expression :

(5+2)*7

Nous l'analyserions comme suit :

Character Action Stack
( Push ( (
5 Push 5 (, 5
Push (, 5,
2 Push 2 (, 5, , 2
) Evaluate to 7, push 7 (, 7
* Push * (, 7, *
7 Push 7 7, *, 7

L'arbre résultant serait :

(5+2)*7

Conclusion

Analyser une expression arithmétique et construire un arbre est une opération fondamentale en informatique. Cet article propose une approche étape par étape utilisant une pile, soulignant l'importance des règles de préséance et de l'équilibre entre parenthèses. La mise en œuvre de cet algorithme en Java vous permettra de créer des applications puissantes capables de traiter et de manipuler efficacement les expressions arithmétiques.

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