• Aucun résultat trouvé

Exercice8.5 Exercice8.4 Exercice8.3 Exercice8.2 Exercice8.1 1Tas Feuille8:TasetFilesdepriorit´e

N/A
N/A
Protected

Academic year: 2022

Partager "Exercice8.5 Exercice8.4 Exercice8.3 Exercice8.2 Exercice8.1 1Tas Feuille8:TasetFilesdepriorit´e"

Copied!
3
0
0

Texte intégral

(1)

Universit´e de Bordeaux

Licence Informatique et Math-Informatique

Semestre 3 2015-2016 Algorithmique 1 Feuille 8 : Tas et Files de priorit´e

1 Tas

Soit le type abstraittasintroduit en cours1. Pour rappel voir annexes A, B, C et D.

Exercice 8.1

1. Dessiner tous les tas (min) possibles avec l’ensemble {1,2,3,4,5} sachant que chaque chiffre n’apparait qu’une seule fois.

2. Combien de tas (min) peut-on construire sur un ensemble ordonn´e de 3, de 5 et de 7

´

el´ements ? Question difficile, peut-on g´en´eraliser `an?

Exercice 8.2

Consid´erant un tas (min),´ecrire chaque arbre interm´ediaire r´esultant de la suite de nombres suivante :

21 , 12 , 6 , 24 , 6 , 20 , 13 , 10 , 6

Pour les 6 premiers appels, d´etaillez le d´eroulement de la primitiveajouter.

Exercice 8.3

En utilisant l’impl´ementation d’un tas (min) :

1. Ecrire un algorithme permettant de connaˆıtre le plus petit ´el´ement d’un tas. Quel est sa complexit´e ?

2. Ecrire un algorithme permettant de connaˆıtre le plus grand ´el´ement d’un tas. Quel est sa complexit´e ?

Exercice 8.4

1. Ecrire un algorithme de tri permettant d’obtenir une liste contenant les ´el´ements par ordre croissant `a partir d’un tas min.

2. Faites tourner cet algorithme sur le tas engendr´e par l’exercice 2.

3. Quelle est sa complexit´e ?

Exercice 8.5

1. Ecrire une fonction qui teste si un arbre binaire est un tas (min).

2. Faites tourner cet algorithme sur le tas engendr´e par l’exercice 2.

3. Quelle est sa complexit´e ?

1. Un tas max (resp. tas min) est un arbre binaire quasi-parfait ´etiquett´e par des objets comparables tel que tout noeud a une ´etiquette plus grande (resp. plus petite) que ses fils. Un tas est un containeur et un arbre binaire, il dispose donc des primitives des arbres binaires ainsi que ceux d’un containeur.

1

(2)

2 File de priorit´ e

Probl`eme r´ecurrent

Exercice 8.6 Gestion d’une piste d’atterrissage

Un avion est caract´eris´e par un enregistrement contenant :

— un indicatif (6 caract`eres)

— sa destination (30 caract`eres)

— son autonomie r´esiduelle de carburant, compt´ee en heures de vol (entier)

— deux bool´eens indiquant s’il y a un pirate `a bord et s’il y a le feu.

Le probl`eme consiste `a

1. d´efinir les structures de donn´ees n´ecessaires `a la gestion d’une piste d’atterrissage ; 2. d´efinir et ´ecrire une fonction calculant la priorit´e d’un avion pour l’utilisation de la piste ; 3. d´efinir et ´ecrire les fonctions n´ecessaires `a la gestion compl`ete de la piste (on envisagera la suppression d’un avion pirat´e de la file d’attente lorsque le pirate a mis sa menace de d´etournement `a ex´ecution).

Quelles notions vues dans ce TD peuvent permettre d’amorcer la r´esolution du probl`eme ?

Annexe A : Type abstrait tas.

fonction valeur(val T: tas d’objet): objet;

fonction ajouter(ref T: tas d’objet, val v: objet): vide;

fonction supprimer(ref T: tas d’objet): vide;

fonction creerTas(ref T: tas d’objet, val v: objet): vide;

fonction detruireTas(ref T: tas d’objet): vide;

Annexe B : Impl´ementation du type abstrait tas.

tas=structure

arbre:tableau[1..tailleStock] d’objet;

tailleTas:entier;

finstructure;

curseur=entier;

sommet=entier;

fonction getValeur(val T: tas d’objet, val s: sommet): objet;

fonction valeur(val T: tas d’objet): objet;

fonction filsGauche(val s: sommet): sommet;

fonction filsDroit(val s: sommet): sommet;

fonction pere(val s: sommet): sommet;

fonction setValeur(ref T: tas d’objet, val s: sommet, val x:objet): vide;

fonction tasPlein(val T: tas d’objet): booleen

fonction creerTas(ref T: tas d’ objet, val racine: objet): vide;

fonction ajouter(ref T: tas d’objet, val v: objet): vide;

fonction supprimer(ref T: tas d’objet): vide;

2

(3)

Annexe C : Type abstrait file de priorit´e.

Primitive suppl´ementaire :

fonction changeValeur(ref T: tas d’objet, val s: sommet, val v: objet): vide;

3

Références

Documents relatifs

Le programme devra dire si l’utilisateur a trouv´ e ou pas le nombre, si l’utilisateur ne le trouve pas, le programme devra indiquer si le nombre saisi est trop grand ou trop

Dans les copies où les expressions temporelles des concentrations ont été établies, l’analyse des résultats expérimentaux pour trouver les ordres partiels a souvent été menée

Observons que chaque classe est non vide ; que deux classes sont disjointes ou confondues ; et que la r´eunion de toutes les classes est E.. Dans cette situation, nous dirons que

Quel est le plus petit entier k qui multipli´e par 2012 est un

[r]

´ Ecrire un algorithme simple ` a l’aide de deux boucles permettant d’afficher le plus grand ´ el´ ement suivant chacun des ´ el´ ements d’un tableau..

Tout groupe d’ordre 80 n’admet-il qu’un seul 5-sous-groupe de

Donner sans justifier un isomorphisme d’anneaux entre Q[i] et le corps des fractions de Z[i].. Donner un polynˆ ome irr´ eductible sur Q qui est r´ eductible