Vous êtes sur la page 1sur 6

INFO1102 Hiver 2023

Laboratoire
Le 17 février 2023

Il y a deux fichiers à votre disposition :


- INFO1102 H23 2023-02-17 moteur.cpp
- INFO1102 H23 2023-02-14 G.cpp

Le premier (moteur) servira de base pour vos pilotes pour les deux structures.
Le deuxième (G) va vous servir de base pour le code des fonctions et des struct.

On va écourter les noms des fonctions. Renommez-les à :


initialiser()
estVide()
inserer()
enlever()
vider() (pour retourner tous les nœuds au monceau)
creerNoeud()

On enlèvera inverserStructure() car ça ne fait pas partie des fonctions qui maintiennent
les propriétés ni d’une pile ni d’une file d’attente.
Pile.cpp

On va y mettre notre implantation d’une pile et le moteur de commandes pour tester


notre travail.

Le type Structure_t sera remplacé par le type Pile_t. On va juste renommer le struct.
Il faudra, par la suite, modifier les entêtes de fonctions. On y remplacera
Structure_t<unType> & structure par Pile_t<unType> &pile.
Il faudra aussi faire le même genre de transformation dans le code des fonction, incluant
le main().

Assurez-vous que tout fonctionne bien.

Remettez votre fichier Pile.cpp dans la boîte de dépôt.


File.cpp
On va y mettre notre implantation d’une file d’attente et le moteur de commandes pour
tester notre travail.

Copiez le code de Pile.cpp dans le nouveau projet.

Remplacez Pile_t par File_t partout.


Remplacez pile par file partout (même dans les messages).

La grande différence entre l’implantation d’une file d’attente et une pile, c’est la
fonction inserer(). L’insertion se fait à la queue et non à la tête de la structure linéaire.
Tout le reste, c’est du pareil au même.

Donc, pour ce projet-ci, sauf pour renommer les types et paramètres, il faudra modifier
la fonction inserer().

Remettez votre fichier File.cpp dans la boîte de dépôt.

Assurez-vous que vos deux structures sont bien programmées. Vous en aurez besoin
pour le prochain devoir.
Rappels :
Les piles et les files d'attentes

Qu’est-ce qui distingue une structure de données d’une autre ?

Leurs propriétés et la forme générale qu’on leurs suppose.

Exemple : les piles


Une pile est une structure linéaire qui a la propriété suivante.

Pour les éléments présents dans la structure, ils sont en ordre chronologique inverse d’insertion.

Ceci veut dire que pour les éléments présents dans la structure :

L’élément inséré le plus récemment est à la tête.

Le deuxième plus récent est le 2e à partir de la tête.

Le troisième plus récent est le 3e à partir de la tête.

Le quatrième plus récent est le 4e à partir de la tête.

Le premier inséré est l’élément de queue.

Conséquences : Pour maintenir cette propriété, il faut que

- L’insertion est toujours faite à la tête.


- L’enlèvement est toujours fait à la tête.

Métaphore : une pile d’assiettes sur un ressort dans un cylindre.

On ne peut mettre une assiette que sur le fait.

On ne peut enlever une assiette que du fait.


Exemple : les files d’attente
Une file d’attente est une structure linéaire qui a la propriété suivante.

Pour les éléments présents dans la structure, ils sont en ordre chronologique d’insertion.

Ceci veut dire que pour les éléments présents dans la structure :

L’élément inséré le plus récemment est à la queue.

Le deuxième plus récent est le 2e à partir de la queue.

Le troisième plus récent est le 3e à partir de la queue.

Le quatrième plus récent est le 4e à partir de la queue.

Le premier inséré est l’élément de tête.

Ou, si on regarde de l’autre bout de la lorgnette :

Le premier inséré (le plus ancien) est à la tête.

Le deuxième inséré (le 2e plus ancien) est le 2e à partir de la tête.

Le troisième inséré (le 3e plus ancien) est le 3e à partir de la tête.

Le quatrième inséré (le 4e plus ancien) est le 4e à partir de la tête.

Le dernier inséré est l’élément de queue.

Conséquences : Pour maintenir cette propriété, il faut que

- L’insertion est toujours faite à la queue.


- L’enlèvement est toujours fait à la tête.

Métaphore : une file d’attente à un comptoir.

- Une personne qui entre dans la file d’attente, entre à la queue.


- Une personne qui sort de la file d’attente, pour aller se faire servir, sort de la tête de la
file d’attente.
Implantation

La façon d’implanter une structure n’est pas prescrite par la définition de la structure, pas plus
que le choix de langage de programmation.

Pour fin d’exemple, comparez le code des deux programmes dans les fichiers « INFO1102 H23
2023-02-14 G.cpp» et « INFO1102 H23 2023-02-14 H.cpp». Ces deux programmes implantent
exactement le même « comportement » malgré que le code des fonctions et des struct ne sont
pas les mêmes.

Ce qui est important, c’est de respecter les propriétés.

Vous aimerez peut-être aussi