• Aucun résultat trouvé

Algorithmes  et  Structures  de  données  Nathalie  Chaignaud  GM3

N/A
N/A
Protected

Academic year: 2022

Partager "Algorithmes  et  Structures  de  données  Nathalie  Chaignaud  GM3"

Copied!
1
0
0

Texte intégral

(1)

Algorithmes  et  Structures  de  données   Nathalie  Chaignaud   GM3  

TD11 - Piles

1. Analyse syntaxique

Par exemple, problème de la reconnaissance des expressions bien parenthèses. Ecrire un algorithme qui :

• accepte les mots comme (), ()(()) ou ((()())()) ;

• rejette les mots comme )(, ()(() ou ((()()))).

2. Calcul d’une expression postfixée

La notation postfixée (polonaise) consiste à placer les opérandes devant l'opérateur. La notation infixée (parenthèsée) consiste à entourer les opérateurs par leurs opérandes. Les parenthèses sont nécessaires uniquement en notation infixée.

Les notations préfixée et postfixée sont d'un emploi plus facile puisqu'on sait immédiatement combien d'opérandes il faut rechercher.

Exemple:

(3 + 5) * 2 s'écrira en notation postfixée (notation polonaise) : 3 5 + 2 * alors que 3 + (5 * 2) s'écrira: 3 5 2 * +

Pour 6 5 2 3 + 8 * + 3 + * = 6*(5 + ((2+3) * 8) + 3) = 6*48 = 288

Ecrire une fonction qui permet de calculer la valeur d’une expression postfixée.

3. Transformation d’une expression infixée en postfixée

Pour éviter le parenthésage, il est possible de transformer une expression infixée en une expression postfixée en faisant "glisser" les opérateurs arithmétiques à la suite des expressions auxquelles ils s'appliquent.

L’algorithme passe les opérandes à la forme postfixe, mais sauvegarde les opérateurs dans la pile jusqu’à ce que tous les opérandes soient tous traduits.

Exemple: a+b*c+(d*e+f)*g = abc*+de*f+g*+

 

Précédence des opérateurs (pour cet algorithme) : 3 : opérateurs unaires

2 : / * 1 : + - 0 : (

Références

Documents relatifs

[r]

On représente le réseau routier d’un pays de la manière suivante : les villes sont des enregistrements chaînés les uns aux autres qui « pointent » également vers

Une méthode répond au critère de composabilité modulaire si elle favorise la production d’éléments de logiciels qui peuvent être combinés librement les uns avec les autres

- le programme se compose de plusieurs fichiers source et la variable doit être utilisée dans un autre fichier que celui dans lequel elle est définie. extern

l Même si vous pouvez écrire une solution itérative au problème, considérer la recherche dichotomique récursive du dictionnaire :?.

l La procédure WriteBinary possède le paramètre formel par valeur N comme la seule variable locale, cependant, chaque enregistrement d’activation doit avoir deux..

– Si T n’est pas vide et possède une hauteur h > 0, alors T est un arbre binaire plein si les deux sous-arbres de la racine sont des arbres.. binaires pleins de hauteur h

– Si T n’est pas vide et possède une hauteur h > 0, alors T est un arbre binaire plein si les deux sous-arbres de la racine sont des arbres binaires pleins de hauteur h - 1.. Si