• Aucun résultat trouvé

Dans ce cas, l’expression 2

N/A
N/A
Protected

Academic year: 2022

Partager "Dans ce cas, l’expression 2"

Copied!
2
0
0

Texte intégral

(1)

UQAC, DIM 20 septembre 2004 8INF805

Quelques exos sur les piles

Exo. 1 : Dans l’algorithme donné en cours, convertissant une notation infixe en notation polonaise, il y est supposé une associativité de gauche; c’est-à-dire quand deux ou plus opérateurs consécutifs de même priorité, ils sont évalué de gauche à droite. Par exemple 6 – 3 – 1 est évalué comme étant (6-3)-3 et non comme 6 –(3-1). L’associativité de droite, en revanche est utilisée pour l’exponentiation (en fortran, elle est notée par **). Dans ce cas, l’expression 2

** 3 ** 4 est évaluée comme 2 ** (3 ** 4), c’est-à-dire 2(34) et non (2 ** 3)** 4 c’est-à-dire

4 3) 2

( . Changez l’algorithme donné en cours de telle manière à prendre en considération l’opérateur ** ayant la plus grande priorité sur le reste.

Indice : Une approche est d’utiliser deux priorités pour cette opérateur : une dans l’expression infixe et l’autre quand il est dans la pile.

Exo. 2 : Écrire un programme qui convertit une expression en post-fixe en une expression infixe qui lui correspond. Par exemple a b + et a b + c d - * vont donner (a + b) et ((a +b) * (c + d)), respectivement.

Solution : Utilisez une pile d’objets de chaînes de caractères pour stocker l’expression infixe.

Lire l’expression posfixe, puis en se basant sur le type de l’élément, manipulez la pile comme suit :

1. si l’élément est un opérande, empilez le dans la pile

2. si l’élément est un opérateur, disons $, alors dépilez deux chaînes X et Y de la pile a. formez l’expression (X $ Y)

b. empilez cette expression dans la pile Par exemple : ab + c d - * est traitée de cette manière :

Empiler a Empiler b Lire +

Dépiler b; Dépiler a; former (a+b), Empiler (a+b) Empiler c

Empiler d Lire –

Dépiler d; Dépiler c; former (c -d), Empiler (c – d) Lire *

(2)

Dépiler (c-d); Dépiler (a+b); former ((a+b)*(c-d)), Empiler ((a+b)*(c-d))

Il n’y a plus d’élément dans l’expression postfixe, extraire le résultat du sommet de la pile.

Exo. 3 : rendre itératif, à l’aide d’une pile, l’algorithme récursif du calcul du n ème nombre de Fibonacci (vu en cours).

Exo. 4 : même question pour l’algorithme récursif de Hanoi.

Références

Documents relatifs

Cette table donne la probabilité d'obtenir r succès en N tirages étant donné une probabilité p de succès sur un tirage.. Par exemple, la probabilité d'obtenir 1 succès sur 5

do not then require that the others be recompiled. A separate call to cc without the -c option then creates the linked executable a.out file. The -W option provides the

The objective of the proposed model was to determine the optimal batch quantity (q ∗ ), proportion of defective items (λ ∗ ), and number of shipments per production cycle (n ∗ )

Some theoretical results provided an effective solution mechanism for achieving the optimal time cycle, optimal selling price, and PT investment strategies while increasing the

Using a second-order Taylor-type expansion and estimates of the functional in terms of the jumps of a 0 in the optimal state, we derive second-order necessary as well as

(on peut facilement montrer que l’inerve est

Classe de quatrième Les

Il existe plusieurs notations di ff érentes pour décrire