• Aucun résultat trouvé

Types Abstraits et Structures de Donn´ees Basiques Fran¸cois Schwarzentruber 5 septembre 2020

N/A
N/A
Protected

Academic year: 2022

Partager "Types Abstraits et Structures de Donn´ees Basiques Fran¸cois Schwarzentruber 5 septembre 2020"

Copied!
2
0
0

Texte intégral

(1)

Types Abstraits et Structures de Donn´ees Basiques

Fran¸cois Schwarzentruber 5 septembre 2020

1 Types abstraits

D´efinition 1 Un type abstraitest un besoin et sp´ecifie des op´erations de manipulation de donn´ees.

Pile

Exemples de besoin : Annuler/refaire

Historique du navigateur Pile d’appel

Utilis´ee dans des algorithmes comme celui de Graham

File

Exemples de besoin : aches `a ex´ecuter

Utilis´ee dans des algorithmes comme le parcours en largeur

File de priorit´e

Exemples de besoin : aches `a ex´ecuter

Algorithme de Dijkstra, A Algorithmes de recherche best-first

Ensemble

Exemples de besoin : Base de donn´ees

Ensemble d’ennemis dans un jeu vid´eo

Dictionnaire (tableau associatif)

Exemples de besoin : Base de donn´ees Objets en Javascript

Arbre

Exemples de besoin :

Structure DOM d’une page HTML Squelette d’un personnage dans un jeu Arbre syntaxique d’une expression

Graphe

Exemples de besoin : eseau routier, r´eseau social Graphe de flot de contrˆole, Automate Ontologie

(2)

2 Structures de donn´ ees

D´efinition 2 Une structure de donn´eesest un moyen pour impl´ementer un type abstrait.

Tableau

4 42 3 5 42 0 0

1 2 3 4 5 6 7

Acc`es en Θ(1) aui-`eme ´el´ement

Une seule allocation m´emoire au d´ebut en Θ(|T|) Nombre fixe d’´el´ements

Ajout/suppression d’´el´ement `a gauche ou `a droite en Θ(1) (tableau “circulaire”)

Insertion/suppression dui-`eme ´el´ement et d´ecalage en Θ(n) Test d’appartenance en Θ(n)

Bien pour impl´ementer une pile et une file, mais nombre maximum d’´el´ements

Bien pour impl´ementer un ensemble avec ajout et parcours Mais pas pour les ensembles dans toute leur g´en´eralit´e

Tableau tri´ e

2 3 3 5 9 10 42

1 2 3 4 5 6 7

Test d’appartenance en Θ(logn) Ajout/suppression en Θ(n)

Bien pour impl´ementer un ensemble en lecture seule

Tableau de bits

0 0 1 0 1 1 0

1 2 3 4 5 6 7

Bien pour impl´ementer un ensemble (par exemple l’ensemble{3,5,6}) avec acc`es, ajout et suppression en Θ(1)

Ensemble inclus dans{1, . . . ,|T|}

Liste simplement chaˆın´ ee

1 4 3 5

Acc`es en Θ(i) aui-`eme ´el´ement Allocation m´emoire

Consommation m´emoire en Θ(n) Nombre arbitraire d’´el´ements

Ajout/suppression d’´el´ement `a gauche Θ(1) Ajout/suppression d’´el´ement `a droite Θ(n) Insertion/suppression dui-`eme ´el´ement en Θ(i) Bien pour impl´ementer une pile

Mauvais pour impl´ementer une file

Liste doublement chaˆın´ ee

1 4 3 5

Acc`es en Θ(i) aui-`eme ´el´ement Allocation m´emoire

Consommation m´emoire en Θ(n) Nombre arbitraire d’´el´ements

Ajout/suppression d’´el´ement `a gauche Θ(1) Ajout/suppression d’´el´ement `a droite Θ(1) Insertion/suppression dui-`eme ´el´ement en Θ(1)

Bien pour impl´ementer une file (mais une liste simplement chaˆın´ee avec pointeur sur le dernier ´el´ement suffit)

Plusieurs impl´ ementations pour les arbres

Si l’arit´e de l’arbre est connue, chaque nœud est un tableau contenant l’´etiquette et des pointeurs vers les enfants

Si l’arit´e n’est pas connue, chaque noeud pointe vers l’enfant gauche, puis les enfants sont stock´ees dans une liste chaˆın´ee.

Références

Documents relatifs

si s est une position gagnante pour le joueur i retourner vrai si s est une position perdante pour le joueur i retourner faux pour tout coup de s → t faire.. si

Puisque le temps d’ex´ ecution d’un algorithme sur une entr´ ee de taille constante est une constante, les r´ ecurrences sous-jacentes au calcul du temps d’ex´ ecution

[r]

[r]

[r]

[r]

Ecrire en Java la gestion d’un tas, repr´esent´e par un tableau : cr´eer, ins´erer, minimum, supprimer (le minimum), modifier une valeur.. Vous programmerez ceci en TP, et

tail pointe vers le dernier ´el´ement de la liste Le dernier ´el´ement poss`ede un pointeur x.next vide (not´e NIL) Doublement li´ee : Le premier ´el´ement poss`ede un pointeur