• Aucun résultat trouvé

Travaux Dirigés d’algorithmique n

N/A
N/A
Protected

Academic year: 2022

Partager "Travaux Dirigés d’algorithmique n"

Copied!
2
0
0

Texte intégral

(1)

Travaux Dirigés d’algorithmique n

o

6

Cours d’algorithmique

—Licence CFA / Troisième Année—

Types de données abstraits

Cette séance de Travaux dirigée est consacrée à l’étude des types de données abstraits et à leurs implantations. On s’intéresse en particulier aux types Pile, File et Ensembles.

xExercice 1. ThéoriePile(T)

1. Soit(y, q) = Depiler(Empiler(x,PileVide)). Montrer queEstVide(q) = VRAIet y=x.

On suppose que l’on dispose d’une implantation du TDAPile(elem)avec l’interface suivante :

typedef ... pile;

pile empty();

int is_empty(const pile);

push(pile &, elem);

elem pop(pile &);

2. Montrer que les états de la variable paprès les deux suites d’instructions suivantes sont iden- tiques :

// déclaration des types elem x,y,z,t;

pile p;

// séquence d’instructions 1 push(&p, x);

push(&p, y);

// séquence d’instructions 2 push(&p, y);

push(&p, x);

z = pop(&p);

t = pop(&p);

push(&p, z);

push(&p, t);

xExercice 2. Implantation dePile(T)et File(T)

1. Implanter le TDAPile(elem)avec la struc- ture de donnée suivante :

#define MAXPILE ...

struct pile_s { int size;

elem values[MAXPILE];

};

2. Implanter le TDAPile(elem)avec la struc- ture de donnée suivante :

#define MAXFILE ...

struct pile_s { int head, tail;

elem values[MAXFILE];

};

xExercice 3. Implantation deEns(T)

Implanter grâce à un tableau de booléen le type Ens(T)où T est l’intervalle de nombres entiers [min,max].

1

(2)

xExercice 4. Le TDACouple(U, V)

SoitU etV deux types. Écrire la spécification d’un type abstrait pour représenter les couples(u, v) oùu∈U etv∈V.

xExercice 5. Pile avec taille

1. Étendre la spécificationPile(T)pour ajouter une fonction Hauteur.

2. Quel sont les axiomes vérifié par Hauteur ?

xExercice 6. Évaluation de expressions postfixées Une expression postfixée (EP) est

– soit une variable ou un nombre.

– soit une suitex y# où# est un opérateur etx,ydeux EP.

Par exemple : L’expession2 + 3est noté2 3+. Le but est de mettre au point un algorithme permettant d’évaluer une EP. On considère ici les opérateurs+,−,×, /.

1. Donner l’équivalent des expressionsx−y+ 2,(2 + 3)∗4 + 1∗5,2 + 3 + 4.

Dans l’expression postfixée, l’ordre des opérateurs donne l’ordre dans lequel on doit faire les calculs (dès que l’on a un opérateur, on sait qu’il faut faire un calcul)

Voici l’idée de l’algorithme d’évaluation : Tant que l’on tombe sur une opérande, on empile sa valeur. Dès que l’on tombe sur un opérateur, on dépile les deux dernières opérandes, on effectue le calcul et on place le résultat dans la pile. À la fin, la seule valeur présente dans la pile est le résultat de l’expression qu’il fallait évaluer.

2. Écrire l’algorithmeevalEP

2

Références

Documents relatifs

De même, un carbocation allylique ou benzylique secondaire est presque aussi stable qu’un carbocation

On v´erifie trivialement que ces probl`emes sont dans N P : si l’on dispose d’un certificat polynomial en la taille des donn´ees, on peut v´erifier en temps polynomial que c’est

Benjamin Depardon, Christophe Mouilleron, Cl´ ement Resvoy..

« Reconnaître le caractère social de la langue c’est aussi admettre que la sociolinguistique est l’étude des caractéristiques des variétés linguistiques, des

Pour chacun des patrons de programmes suivants, dire en fonction de n quel est le nombre d’opé- rations op que le programme effectue.. Justifier votre résultat par un calcul

Pour montrer qu’un algorithme est correct, on écrit une propriété P qui est conservée à chaque étape de boucle que l’on appelle invariant de boucle1. x

[r]

Exercice 3: Ecrire un programme qui permette au robot d’aller sur tous les points de passage de ´ l’espace de la figure 4 (`a gauche).. Exercice 4: Ecrire un programme qui permette