• Aucun résultat trouvé

Algorithmique TD 3: structures de donn´ees r´ecursives

N/A
N/A
Protected

Academic year: 2022

Partager "Algorithmique TD 3: structures de donn´ees r´ecursives"

Copied!
2
0
0

Texte intégral

(1)

Algorithmique TD 3: structures de donn´ees r´ecursives

Exercice 1. Algorithmes sur des listes

Pour chaque probl`eme suivant, donner un algorithme le r´esolvant, puis le prouver et donner son coˆut (en pr´ecisant le mod`ele de coˆut choisi).

a. Calculer la longueur d’une liste

b. Calculer l’´el´ement maximum d’une liste d’entiers c. Supprimer un ´el´ement d’une liste, s’il est pr´esent d. Concat´ener deux listes

e.Calculer la liste miroir d’une liste (dont les ´el´ements apparaissent dans l’ordre inverse).

Proposer deux versions : l’une r´ecursive et l’autre it´erative de cet algorithme.

Exercice 2. Interfaces : listes, piles, files, etc

a. impl´ementer un pile `a partir d’une liste b. impl´ementer un file `a partir d’une liste

c. impl´ementer une file `a partir d’un tableau (on g´erera le d´ebordement de capacit´e) d. impl´ementer une file `a partir de deux piles

e. proposer une impl´ementation d’une double pile `a partir d’un seul tableau, de sorte aucun d´ebordement de pile n’ait lieu avant que tous les ´el´ements du tableau ne soient occup´es.

Exercice 3. Listes ou tableaux

a. Dresser une liste des avantages et inconv´enients pour les deux structures de donn´ees : listes et tableaux (on ´etudiera en particulier les coˆuts des op´erations de base telles que la recherche, l’insertion, la suppression).

b. Pour chacun des objets suivants, dire (et justifier) quelle structure de donn´ee vous pr´ef´ererez utiliser (liste, tableau, pile, file, ou autre) :

— un polynˆome dense `a coefficients entier

— un polynˆome creux `a coefficients entiers (seuls quelques monˆomes sont non-nuls)

— un polygˆone dans le plan

— l’historique des actions effectu´ees dans un logiciel, en vue de les annuler (fonction undo)

— un ensemble de tˆache `a faire effectuer par une machine lente (t´el´echargement de fichiers lourds sur internet par exemple)

— une matrice dense

— une matrice creuse (seuls quelques coefficients sont non nuls)

L3 Maths/info – TD d’algorithmique – Cl´ement Pernet Page 1/2

(2)

Exercice 4. Parcours d’arbres

Ecrire des algorithmes it´´ eratifs effectuant le parcours d’un arbre a. en profondeur prefixe

b. en largeur.

On pourra utiliser des structures de donn´ee dynamiques comme les piles, files, etc.

Exercice 5. Parcours infixe, pr´ efixe, postfixe

Pour chaque probl`eme suivant, quel parcours en profondeur vous semble le plus adapt´e : a. former un tableau tri´e contenant les ´el´ements d’un arbre binaire de recherche,

b. copier efficacement un arbre binaire de recherche,

c. organiser une grande consultation nationale (on supposera que la d´emocratie partici- pative id´eale est bas´e sur une hi´erarchie de niveaux de repr´esentativit´e connect´ee en arbre).

Exercice 6. Arbres binaires de recherche

a. Ecrire les algorithmes de recherche dans un arbre binaire de recherche´ 1. d’un ´el´ement donn´e,

2. du minimum, du maximum,

3. du successeur d’un ´el´ement donn´e, de son pr´ed´ecesseur, 4. de l’´el´ement m´edian.

b. Ecrire l’algorithme d’insertion d’un ´´ el´ement dans une feuille d’un arbre binaire de recherche.

c. Proposer un algorithme de tri sur un tableau, qui utilise en interne un arbre binaire de recherche.

d. Ecrire un algorithme´ Coupure qui, `a partir d’un ´el´ement x, d´ecoupe un arbre binaire de recherche en deux arbres binaires de recherche contenant des ´el´ements inf´erieurs (respec- tivement sup´erieurs) `a x. En d´eduire un algorithme d’insertion `a la racine

e. Ecrire un algorithme effectuant la suppression d’un ´´ el´ement d’un arbre binaire de recherche s’il existe. On distinguera les trois cas, o`u l’´el´ement `a supprimer poss`ede 0, 1 ou 2 descendants.

Exercice 7. Tri par tas

a. R´e-´ecrire l’algorithme de tri par tas quand le tas est repr´esent´e par un tableau o`u pour tout noeud T[i], son fils gauche est l’´el´ement T[2i+ 1] et son fils droit l’´el´ement T[2i+ 2].

b. Tracer l’ex´ecution de cet algorithme sur le tableau [5,8,6,3,7,10,2,1,12,4,11,9]

Exercice 8. File ` a priorit´ e

a. Impl´ementer une file `a priorit´e `a partir d’un tas. On utilisera la repr´esentation en tableau d’un tas, et on supposera disposer d’une fonctionPriorit´equi retourne pour chaque

´

el´ement un entier positif indiquant son niveau de priorit´e.

L3 Maths/info – TD d’algorithmique – Cl´ement Pernet Page 2/2

Références

Documents relatifs

• Les intervalles sont stockés dans un arbre binaire de recherche. • La clé utilisée pour comparer les nœuds est l'extrémité gauche

Si on a une unit´ e d’information pour un des ´ el´ ements (par exemple, ne peut pas ˆ etre le plus petit) et z´ ero pour l’autre, la comparaison peut nous donner une unit´

Nous supposons ´ egalement que la seule op´ eration ` a notre disposition nous permet de v´ erifier si deux ´ el´ ements sont ou non ´ egaux.. Au moyen de l’algorithme pr´

Nous supposons ´ egalement que la seule op´ eration ` a notre disposition nous permet de v´ erifier si deux ´ el´ ements sont ou non ´ egaux.. Proposez un algorithme

◮ Etant donn ´ee une relation R et une liste d’attributs L de R, ´ τ L (R) trie les tuples de R selon les valeurs des attributs dans L, consid ´er ´es dans l’ordre de

[r]

La profondeur du nœud ou d’une feuille d’un arbre hétérogène est le nombre d’arêtes du plus court chemin reliant ce nœud ou cette feuille à la racineB. On supposera que β

Dans le cas de points p-q-i alignés (orientation 0), le point le plus éloigné de P est conservé (dans le tableau donné en exemple ci-dessous, c'est la différence des distances PQ