• Aucun résultat trouvé

Qu’est - - ce qu’un TDA? ce qu’un TDA?

N/A
N/A
Protected

Academic year: 2022

Partager "Qu’est - - ce qu’un TDA? ce qu’un TDA?"

Copied!
20
0
0

Texte intégral

(1)
(2)

Qu’est

Qu’est - - ce qu’un TDA? ce qu’un TDA?

ƒ ƒ C C est une fa est une fa ç ç on d on d organiser et de structurer organiser et de structurer

l l information. Plus sp information. Plus sp écifiquement, un TDA permet la é cifiquement, un TDA permet la maintenance d

maintenance d une collection de donn une collection de donn ées. é es.

ƒ ƒ Cette maintenance des donn Cette maintenance des donn é é es se fait en deux parties : es se fait en deux parties :

ƒƒ par les conteneurs de donnépar les conteneurs de données;es;

ƒƒ par les services par les services (ou mé(ou méthodes)thodes) qui doivent manipuler adéqui doivent manipuler adéquatement quatement ces donn

ces donnéées.es.

ƒ ƒ La structure de donn La structure de donn é é es recherch es recherch ée doit être adapt é e doit être adapté é e au e au contexte de l

contexte de l application et au format des donné application et au format des donn ées. es.

(3)

La définition d’un TDA La définition d’un TDA

ƒƒ CC’’est une analyse exhaustive des besoins et du contexte gest une analyse exhaustive des besoins et du contexte géénnééral du ral du projet dans lequel s

projet dans lequel s’’inscrit le dinscrit le dééveloppement du TDA qui permet veloppement du TDA qui permet ll’identification des donn’identification des donnéées et des services requis.es et des services requis.

ƒƒ Quelques observations Quelques observations àà ce sujet :ce sujet :

ƒƒ une identification juste des donnéune identification juste des données nes néécessaires cessaires àà un TDA permet une un TDA permet une organisation efficace de ces derni

organisation efficace de ces dernièères. Elle permet dres. Elle permet d’é’éviter les viter les répétitions inutiles et aussi favoriser les constructions logiques;titions inutiles et aussi favoriser les constructions logiques;

ƒƒ llidentification juste des services nidentification juste des services néécessaires dcessaires dun TDA permet, quant un TDA permet, quant àà lui, le d

lui, le dééveloppement dveloppement d’’outils efficaces servant outils efficaces servant àà la manipulation des la manipulation des donnédonnées;es;

ƒƒ D’D’un TDA un TDA àà l’l’autres, les services essentiels sont souvent semblables, autres, les services essentiels sont souvent semblables, voir même identiques.

voir même identiques.

ƒƒ D’D’un autre côtun autre côtéé, les donn, les donnéées nes néécessaires diffcessaires diffèrent grandement car elles èrent grandement car elles dépendent de lpendent de l’’application courante. Ainsi, elles sont toujours application courante. Ainsi, elles sont toujours àà

redéredéfinir.finir.

ƒƒ

(4)

Un exemple : Dans une école!

Un exemple : Dans une école!

(1/5)(1/5)

ƒ ƒ Probl Probl é é matique : On cherche matique : On cherche à à stocker les informations stocker les informations essentielles pour tous les

essentielles pour tous les é é tudiants d tudiants d une é une école. cole.

ƒƒ Quel est le contexte géQuel est le contexte génnéral?éral?

ƒƒ Quelles sont les donnéQuelles sont les données qui doivent être emmagasines qui doivent être emmagasinéées?es?

ƒƒ Quels sont les services néQuels sont les services nécessaires au bon fonctionnement de cessaires au bon fonctionnement de cette structure de donn

cette structure de donnéées?es?

(5)

Un exemple : Dans une école!

Un exemple : Dans une école!

(2/5)(2/5)

ƒ ƒ Quel est le contexte g Quel est le contexte g é é n n é é ral? ral?

ƒƒ On cherche On cherche àà crcrééer une liste der une liste dinformation servant simplement au information servant simplement au stockage et

stockage et àà la consultation.la consultation.

ƒƒ Cette liste pourrait être utiliséCette liste pourrait être utilisée par toute la population de le par toute la population de l’é’école cole via divers terminaux

via divers terminaux (employé(employés administratifs, employs administratifs, employéés acads acadéémiques, miques, employ

employéés de soutien et les s de soutien et les éétudiants euxtudiants eux-mêmes)-mêmes)..

ƒƒ Dans ce cas-Dans ce cas-ci, on voudrait avoir la liste trici, on voudrait avoir la liste triéé en ordre croissant en ordre croissant selon le champ du code d

selon le champ du code d’é’étudiant tudiant (ce qui indique qu(ce qui indique qu’’on don déésire sire organiser les donn

organiser les donnéées par valeur et non par position)es par valeur et non par position)..

(6)

Un exemple : Dans une école!

Un exemple : Dans une école!

(3/5)(3/5)

ƒ ƒ Quelles sont les donn Quelles sont les donn é é es qui doivent être es qui doivent être emmagasin

emmagasin ées? é es?

ƒƒ NomNom 1 champ1 champ

ƒƒ PréPrénomnom 1 champ1 champ

ƒƒ Date de naissance Date de naissance (anné(année, mois, jour)e, mois, jour) 3 champs3 champs

ƒƒ Code d’éCode d’étudianttudiant 1 champ1 champ

ƒƒ Adresse complèAdresse complète te 4 champs4 champs (no(no. civique, . civique, nono. d. d’’appartement, province et pays)appartement, province et pays)

ƒƒ NuméNuméros de tros de télééphone phone (4 max)(4 max) 4 champs4 champs

ƒƒ Moyenne cumulativeMoyenne cumulative 1 champ1 champ Nombre de champs total

Nombre de champs total 15 champs15 champs

(7)

Un exemple : Dans une école!

Un exemple : Dans une école!

(4/5)(4/5)

ƒ ƒ Quelles sont les services n Quelles sont les services n é é cessaires cessaires à à cette structure cette structure de donn

de donn é é es? es?

ƒƒ Compter le nombre d’éCompter le nombre d’élémentsments

ƒƒ InséInsérer un nouvel rer un nouvel ééllémentément

ƒƒ Supprimer un éSupprimer un élément existantment existant

ƒƒ Rechercher et consulter un éRechercher et consulter un élémentment

ƒƒ CréCréer la liste de donner la liste de donnééeses

ƒƒ DDéétruire la liste de donntruire la liste de donnééeses

ƒƒ

(8)

Un exemple : Dans une école!

Un exemple : Dans une école!

(5/5)(5/5)

ƒ ƒ Finalement Finalement

ƒƒ On vient de concevoir une structure de donnOn vient de concevoir une structure de donnéées comples complèète qui te qui correspond

correspond àà un nouveau type de donnun nouveau type de donnéées abstraits es abstraits (on verra plus (on verra plus loin que cet exemple correspond

loin que cet exemple correspond àà une liste)une liste)..

ƒƒ Cette nouvelle structure de donnéCette nouvelle structure de données posses possèède 15 champs de de 15 champs de donnédonnées et 8 services es et 8 services (ou mé(ou méthodes)thodes)..

ƒƒ Quelques remarques :Quelques remarques :

ƒƒ la conception du TDA fait entièla conception du TDA fait entièrement abstraction des techniques de rement abstraction des techniques de l’l’informatiques et des difficultinformatiques et des difficultéés inhs inhéérentes rentes àà son impléson implémentation;mentation;

ƒƒ dans le même ordre d’dans le même ordre d’ididéée, cet exemple illustre que la dée, cet exemple illustre que la définition finition d’d’une TDA spune TDA spéécifie lcifie l’’effet des opeffet des opéérations sans indiquer comment rations sans indiquer comment stocker les donn

stocker les donnéées, ni comment implanter les opes, ni comment implanter les opéérations;rations;

ƒƒ on remarque que seule la structure de donnéon remarque que seule la structure de données est dées est définie et que finie et que tous les autres

tous les autres ééléments du logiciel ne sont pas abordments du logiciel ne sont pas abordéé (tel que (tel que l’l’interface usager)interface usager)..

(9)

Les services d’un TDA : Les services d’un TDA :

les plus communs

les plus communs

(1/2)(1/2)

ƒ ƒ Voici l Voici l ensemble des services dont l ensemble des services dont l impl impl é é mentation est mentation est quasi

quasi - - syst syst ématique : é matique :

ƒƒ crécréer le TDA;er le TDA;

ƒƒ libélibérer le TDA;rer le TDA;

ƒƒ inséinsérer un nouvel enregistrement;rer un nouvel enregistrement;

ƒƒ supprimer un enregistrement existant;supprimer un enregistrement existant;

ƒƒ compter le nombre d’compter le nombre denregistrements;enregistrements;

ƒƒ rechercher un enregistrement existant.rechercher un enregistrement existant.

(10)

Les services d’un TDA : Les services d’un TDA :

d’autres services utiles

d’autres services utiles

(2/2)(2/2)

ƒ ƒ Voici d Voici d autres exemples de services dont autres exemples de services dont l l impl impl é é mentation est souvent r mentation est souvent r é é alis alis é é e : e :

ƒƒ savoir si le TDA est complèsavoir si le TDA est complètement vide;tement vide;

ƒƒ supprimer tous les enregistrements existants;supprimer tous les enregistrements existants;

ƒƒ copier tout ou en partie un TDA;copier tout ou en partie un TDA;

ƒƒ parcourir tous les enregistrements selon certains parcours;parcourir tous les enregistrements selon certains parcours;

ƒƒ faire certains calculs sur certains champs du TDA;faire certains calculs sur certains champs du TDA;

ƒƒ trier le TDA selon certains critètrier le TDA selon certains critères;res;

ƒƒ enregistrer le TDA sur un fichier;enregistrer le TDA sur un fichier;

ƒƒ charger le TDA provenant dcharger le TDA provenant dun fichier;un fichier;

ƒƒ connaîconnaître la taille métre la taille mémoire requise par le TDA;moire requise par le TDA;

ƒƒ connaîconnaître la taille métre la taille mémoire disponible.moire disponible.

(11)

Types d’implémentation pour un TDA

Types d’implémentation pour un TDA

(1/10)(1/10)

ƒ ƒ Il faut consid Il faut consid é é rer trois aspects lors de l rer trois aspects lors de l impl impl é é mentation : mentation :

ƒƒ 11ierier aspect : la maspect : la mééthode dthode dallocation de la mallocation de la méémoire;moire;

ƒƒ allocation statique allocation statique (par tableaux)(par tableaux);;

ƒƒ allocation dynamique par bloc allocation dynamique par bloc (par tableaux)(par tableaux);;

ƒƒ allocation dynamique par enregistrement allocation dynamique par enregistrement (chaî(chaînée)e)..

ƒƒ 22iièmeème aspect : la faaspect : la façon de structurer les enregistrements.çon de structurer les enregistrements.

ƒƒ structure contiguëstructure contiguë

(avec ses variantes

(avec ses variantes –linélinéaire, circulaire, aire, circulaire, ……));;

ƒƒ structure par chaîstructure par chaînage nage

(avec ses variantes

(avec ses variantes –linélinéaire, circulaire, chaaire, circulaire, chaîînage simple, chanage simple, chaîînage double, nage double, ……))..

ƒƒ 33iièmeème aspect : le mode daspect : le mode dorganisation des donnéorganisation des données.es.

ƒƒ

(12)

ƒƒ On utilise un tableau de dimension fixe pour contenir toutes lesOn utilise un tableau de dimension fixe pour contenir toutes les donndonnées du ées du TDATDA..

ƒƒ La taille du tableau statique est dLa taille du tableau statique est dééfinie au dfinie au déépart et est part et est éégale au gale au nombre maximum de donn

nombre maximum de donnéées pres préévues.vues.

Schéma d’une implémentation avec allocation statique de la mémoire

0 1 2 3 4 5 6 7 8 9

Alfred

Alexia Katy Karen Ken Kevin Mike Patrick - -

List

Types d’implémentation pour un TDA : Types d’implémentation pour un TDA :

avec allocation statique de la mémoire

avec allocation statique de la mémoire

(2/10)(2/10)

(13)

ƒƒ On utilise un tableau dynamique dont la taille varie dans le temps en On utilise un tableau dynamique dont la taille varie dans le temps en fonction de la demande.

fonction de la demande.

ƒƒ Les fonctions Les fonctions mallocmalloc, , reallocrealloc et et freefree sont souvent sollicitésont souvent sollicitées.es.

0 1 2 3 4

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

T1

T2

Alexia Karen Kevin Patrick -

List

List

List

Alfred

Alexia Katy Karen Ken Kevin Mike Patrick Zach -

Alfred

Alexia Ben Christ Daniel Hector Katy Karen Ken Kevin

Types d’implémentation pour un TDA : Types d’implémentation pour un TDA :

avec allocation dynamique par bloc de la mémoire

avec allocation dynamique par bloc de la mémoire

(3/10)(3/10)

(14)

ƒƒ On dOn définie une structure éfinie une structure SS qui contient :qui contient :

ƒƒ tous les champs (conteneur de donnétous les champs (conteneur de données) pour un enregistrement;es) pour un enregistrement;

ƒƒ n pointeurs du type structurén pointeurs du type structuré S servant de rS servant de réféérence vers les rence vers les enregistrements li

enregistrements liéés.s.

ƒƒ La structure est complèLa structure est complètement dynamique et seuls les tement dynamique et seuls les enregistrements requis sont allou

enregistrements requis sont alloués és (et ce, (et ce, en tout temps)en tout temps)..

ƒƒ Les fonctions Les fonctions mallocmalloc et et freefree sont souvent sollicitsont souvent sollicitéées. es.

ƒƒ Pour ce type d’Pour ce type d’allocation méallocation mémoire, on utilise systmoire, on utilise systéématiquement une matiquement une structure en cha

structure en chaîneîne. .

Schéma d’une implémentation avec allocation dynamique par enregistrement de la mémoire Alexia

Ö

Ben

Ö

Christ

Ö

Katy

Ö

Karen

Ö

Nicolas

Ö

Patrick

Ö Ö

Head

List

Types d’implémentation pour un TDA : Types d’implémentation pour un TDA :

avec allocation dynamique par enregistrement de la mémoire

avec allocation dynamique par enregistrement de la mémoire

(4/10)(4/10)

(15)

ƒƒ Les donnLes données sont disposées sont disposéées de faes de faççon contiguon contiguës dans le tableau.ës dans le tableau.

ƒƒ Les liens existants entre les diffLes liens existants entre les difféérents enregistrements du TDA sont rents enregistrements du TDA sont ddééfinit par les voisins immfinit par les voisins imméédiats de ces derniers.diats de ces derniers.

0 1 2 3 4 5 6 7 8 9

Alfred

Alexia Katy Karen Ken Kevin Mike Patrick - -

List

List

0 1 2 3 4 5 6 7 8 9

3

First

Last Data

Types d’implémentation pour un TDA : Types d’implémentation pour un TDA :

avec une structure contiguë des enregistrements

avec une structure contiguë des enregistrements

(5/10)(5/10)

(16)

ƒƒ Chaque enregistrement possChaque enregistrement possède, en plus des donnède, en plus des données nées nécessaires écessaires au TDA, n r

au TDA, n rééfféérences permettant de localiser les n enregistrements rences permettant de localiser les n enregistrements liéliés.s.

Schémas d’implémentation avec une structure en chaîne des enregistrements (allocation statique en jaune et allocation dynamique en rouge)

Alexia

Ö

Ben

Ö

Christ

Ö

Katy

Ö

Karen

Ö

Nicolas

Ö

Patrick

Ö Ö

Head

List

- 7

Zach -1

- 0

Katy 4

Karen 8

Christ 3

Alexia 5

- -1

Nicolas 9

Patrick 1

0 1 2 3 4 5 6 7 8 9

Data

6

First

List

2

Empty

Types d’implémentation pour un TDA : Types d’implémentation pour un TDA :

avec une structure en chaîne des enregistrements

avec une structure en chaîne des enregistrements

(6/10)(6/10)

(17)

ƒƒ Ce type dCe type d’’organisation ordonne les donnéorganisation ordonne les données en fonction de la valeur es en fonction de la valeur dd’un champ sp’un champ spéécifique cifique àà chaque enregistrement.chaque enregistrement.

ƒƒ Par exemple, les donnPar exemple, les donnéées contenues dans un dictionnaire sont es contenues dans un dictionnaire sont organis

organiséées de cette faes de cette faççon.on.

Schéma d’une structure de données organisée par valeur (classement par ordre alphabétique)

0 1 2 3 4 5

Alexia Christ Karen Ken Mike Sassia

30 32 45 39 22 7

List

0 1 2 3 4 5

List

Types d’implémentation pour un TDA : Types d’implémentation pour un TDA :

avec une organisation par valeur des données

avec une organisation par valeur des données

(7/10)(7/10)

(18)

ƒƒ Ce type dCe type d’’organisation ordonne les donnéorganisation ordonne les données en fonction de leur es en fonction de leur ordre d

ordre d’insertion dans la structure.’insertion dans la structure.

ƒƒ Par exemple, les donnPar exemple, les donnéées contenues dans une file des contenues dans une file d’’attente sont attente sont organis

organiséées de cette faes de cette faççon.on.

Schéma d’une structure de données organisée par position (classement selon l’heure d’arrivée)

0 1 2 3 4 5

Sassia Christ Ken Mike Alexia Karen 04:16 07:37 11:35 15:48 15:53 19:02

List

Types d’implémentation pour un TDA : Types d’implémentation pour un TDA :

avec une organisation par position des données

avec une organisation par position des données

(8/10)(8/10)

(19)

Types d’implémentation pour un TDA : Types d’implémentation pour un TDA :

avec une organisation par clef d’identification des données

avec une organisation par clef d’identification des données

(9/10)(9/10)

ƒƒ Ce type dCe type d’’organisation ordonne les donnéorganisation ordonne les données en fonction des en fonction d’’une clef une clef issue d

issue d’un calcul ou d’un calcul ou d’’une manipulation faite àune manipulation faite à partir d’partir d’une ou de une ou de plusieurs donn

plusieurs données de chaque enregistrement.ées de chaque enregistrement.

ƒƒ Pour ce type dPour ce type d’’organisation des donnorganisation des donnéées, on utilise es, on utilise

systsystéématiquement une matiquement une structure contigustructure contiguëë des donndes donnééeses (du moins, à(du moins, à la la base de l

base de l’’implimpléémentation)mentation)..

ƒƒ Par exemple, plusieurs des bases de donnPar exemple, plusieurs des bases de donnéées conventionnelles es conventionnelles utilisent ce type d

utilisent ce type d’’organisation.organisation.

0 1 2 3 4 5

Alexia Ken Sassia Christ Mike Karen 22208020 78520441 68422684 98749578 05498809 31974220

List

(20)

La taille des donn

La taille des donnéées est parfois de dimension superfluees est parfois de dimension superflue jamais

jamais parfoisparfois souventsouvent Requiert des r

Requiert des rééférences supplrences suppléémentaires pour chaque enregistrement mentaires pour chaque enregistrement non

non ouioui Performance de la maintenance des donn

Performance de la maintenance des donnéées es (probl(problèème de dme de déécalage pour les calage pour les organisations contigu

organisations contiguëës et de gestion de la taille pour les allocations dynamiques pars et de gestion de la taille pour les allocations dynamiques parbloc) bloc)

+ efficace

+ efficace ±±efficaceefficace --efficaceefficace Flexibilit

Flexibilitééde la taille des donnéde la taille des données es

dynamique

dynamique statiquestatique AccèAccès rapide aux donns rapide aux donnéées es

direct

direct par parcourspar parcours Nombre d

Nombre d’’appels aux allocations mappels aux allocations méémoiremoire

11 1 < nombre d’1 < nombre d’appels < nappels < n nn Simplicit

Simplicitééde la structure de donnéde la structure de données es

+ simple

+ simple ±±simplesimple --simplesimple

Org chaî Org

cont Org

chaî Org

cont

Alloc dyn

par enr Alloc. dyn.

par bloc Allocation

statique

CritèCritèresres

Types d’implémentation pour un TDA :

Types d’implémentation pour un TDA :

Avantages et inconvénients des méthodes Avantages et inconvénients des méthodes d’allocation mémoire conjuguées aux façons de structurer les enr

d’allocation mémoire conjuguées aux façons de structurer les enregistrementsegistrements (10/10)(10/10)

Références

Documents relatifs

Cependant, les taux plasmatques de l’ORAC, l'albumine, la vitamine E, SOD, CAT et GSH-Px ont été significativement diminués chez les macrosomes comparés aux

Définition : Une fonction est une machine qui, à un nombre donné fait correspondre un nombre et un seul.?. • Quel est le nombre de départ si le résultat affiché par ce programme

Bousculé, apostrophé, harcelé, l'auditeur ne sait plus si le bulletin météorologique qui annonce la neige a trait à la journée d'hier ou à celle de demain ; et il se retrouve en

Pour repérer la thèse défendue, il convient tout d'abord de trouver le thème du texte.. On peut ensuite chercher le jugement ou le sentiment du locuteur à propos de

Elle est d’autant plus importante que la masse de la charge est grande et s’oppose à la mise en mouvement. Elle est caractérisée par le moment d’inertie J, qui s’exprime en

Sous Linux, on peut utiliser les système d’exploitation grâce à l’interface graphique (utilisation de la souris obligatoire) OU par la console (ou terminal) qui contient un

Une dérivée est une fonction f 0 qui à tout nombre pour lequel f un nombre derivé, associe ce nombre derivé Une dérivée d’une fonction est une fonction correspondant à la

Et nous-mêmes sommes en retour englués dans un autre paradoxe où, pourtant descendus de l’arbre – ce dont la forme même de nos mains témoigne à chaque instant – et