• Aucun résultat trouvé

Selon le Dictionnaire de l’ Dictionnaire de l ’informatique informatique de Larousse de Larousse, une liste se d , une liste se dé éfinit finit comme suit :

N/A
N/A
Protected

Academic year: 2022

Partager "Selon le Dictionnaire de l’ Dictionnaire de l ’informatique informatique de Larousse de Larousse, une liste se d , une liste se dé éfinit finit comme suit :"

Copied!
27
0
0

Texte intégral

(1)
(2)

D D é é finition des listes g finition des listes g é é n n é é ralis ralis é é es es (1/2) (1/2)

Selon le

Selon le Dictionnaire de l’ Dictionnaire de l ’informatique informatique de Larousse de Larousse, une liste se d , une liste se dé éfinit finit comme suit :

comme suit :

Ensemble de donn

Ensemble de donné ées reli es relié ées par une partie lien, qui permet d es par une partie lien, qui permet d’é ’établir un chemin tablir un chemin pour passer de l

pour passer de l’ ’une une à à l’ l ’autre. autre.

Ainsi, une liste correspond

Ainsi, une liste correspond à à une collection de donné une collection de donn ées reli es relié ées entre elles. es entre elles.

Cette collection est essentiellement constitu

Cette collection est essentiellement constitué ée de e de n n groupes de m groupes de m donn donn ées. é es.

On dit aussi que la liste poss

On dit aussi que la liste possè ède de n n enregistrements de enregistrements de m m donn donn ées chacun. é es chacun.

(3)

D D é é finition des listes g finition des listes g é é n n é é ralis ralis é é es es (2/2) (2/2)

Les listes sont certainement les TDA

Les listes sont certainement les TDA les les plus utilis plus utilis é é es. es.

Les listes les plus simples contiennent seulement Les listes les plus simples contiennent seulement

quelques donn

quelques donné ées par enregistrement. es par enregistrement.

Lorsqu

Lorsqu on parle de listes g on parle de listes g é é n n é é ralis ralis é é es, on fait r es, on fait r é é f f é é rence rence au fait que chaque enregistrement de ces listes peut

au fait que chaque enregistrement de ces listes peut contenir d

contenir d autres listes parmi ses donn autres listes parmi ses donn é é es es (cette dé (cette d éfinition finition peut être appliqu

peut être appliqué ée r e ré écursivement pour chacune des sous liste) cursivement pour chacune des sous liste) . .

(4)

Un exemple : Une liste d

Un exemple : Une liste d ’é ’é picerie! picerie! (1/4) (1/4)

Pour

Pour é é laborer la notion d laborer la notion d un type de donn un type de donn é é es abstrait, es abstrait, consid

consid é é rer la liste de provision suivante : rer la liste de provision suivante :

lait;

lait;

pain;

pain;

oeufs;

oeufs;

beurre;

beurre;

confiture;

confiture;

croissants;

croissants;

pommes;

pommes;

bananes.

bananes.

Les Les é é l l é é ments de la liste sont dans un ordre s ments de la liste sont dans un ordre s é é quentiel quentiel mais ne sont pas n

mais ne sont pas n é é cessairement ordonn cessairement ordonn é é s par nom. s par nom.

(5)

Un exemple : Une liste d

Un exemple : Une liste d ’é ’é picerie! picerie! (2/4) (2/4)

Que peut

Que peut -on faire avec une telle liste ? - on faire avec une telle liste ?

(Quels sont les services qui peuvent être d

(Quels sont les services qui peuvent être d éfinit?) é finit?)

cré cr éer la liste; er la liste;

ajouter un article dans la liste;

ajouter un article dans la liste;

retirer un article de la liste;

retirer un article de la liste;

calculer la longueur de la liste (le nombre d

calculer la longueur de la liste (le nombre d’ ’articles dans la liste); articles dans la liste);

retrouver l

retrouver l article de la position i. article de la position i.

Quelle donn

Quelle donné ées sont n es sont né écessaires aux diff cessaires aux diff é é rents rents enregistrements de la liste?

enregistrements de la liste?

un nom d

un nom d’ ’article. article.

Ainsi, on vient de d

Ainsi, on vient de dé éfinir un type de donn finir un type de donné é es abstrait es abstrait nomm nomm é é « « liste de provisions liste de provisions » » comme une collection comme une collection d d ’é ’é l l é é ments de provisions jointes ments de provisions jointes à à l l ensemble ensemble

d d op op é é rations pr rations pr é é d d é é finis. finis.

(6)

Un exemple : Une liste d

Un exemple : Une liste d ’é ’é picerie! picerie! (3/4) (3/4)

D éfinition des op finition des opé érations : rations :

Create

Create : Cré : Cr ée et fait l e et fait l’ ’initialisation de la liste initialisation de la liste ( à vide) vide)

Insert : Ins

Insert : Insè ère un nouvel enregistrement dans la liste re un nouvel enregistrement dans la liste Delete

Delete : Supprime un enregistrement spé : Supprime un enregistrement sp écifique de la liste cifique de la liste Retrieve

Retrieve : Retrouve un enregistrement spé : Retrouve un enregistrement sp écifique de la liste et retourne cifique de la liste et retourne son contenu

son contenu Length

Length : Retourne le nombre d : Retourne le nombre d ’enregistrements pr enregistrements pr ésents dans la liste é sents dans la liste

Les sp

Les sp écifications de ces 5 op é cifications de ces 5 opé érations sont les termes de contrat rations sont les termes de contrat pour cette liste.

pour cette liste.

Qu’ Qu ’est est -ce que la d - ce que la dé éfinition finition ci ci- -haut haut peut nous dire sur son peut nous dire sur son comportement :

comportement :

les fonctions :

les fonctions : Create Create, Insert et , Insert et Delete Delete modifient le contenu de la liste. modifient le contenu de la liste.

les fonctions :

les fonctions : Retrieve Retrieve et et Length Length questionnent la liste et retourne des questionnent la liste et retourne des informations sur elle.

informations sur elle.

(7)

Un exemple : Une liste d

Un exemple : Une liste d ’é ’é picerie! picerie! (4/4) (4/4)

Un TDA ne doit pas inclure les probl

Un TDA ne doit pas inclure les probl é é matiques de matiques de l l impl impl é é mentation. Par exemple, on veut cr mentation. Par exemple, on veut cr é é er la liste er la liste

suivante : suivante :

On utilise alors le

On utilise alors le pseudo pseudo- -code code suivant : suivant :

Create(List)

Insert(List, Lait) Insert(List, Pain) Insert(List, Oeufs) Insert(List, Beurre) Insert(List, Confiture) Insert(List, Fruits)

(8)

Exemples d

Exemples d impl impl é é mentation de liste mentation de liste (1/3) (1/3)

Liste avec allocation statique et organisation contigu Liste avec allocation statique et organisation contigu ë ë Liste avec allocation statique et organisation cha

Liste avec allocation statique et organisation chaî în ée simple e simple

Liste avec allocation dynamique par bloc et organisation cha

Liste avec allocation dynamique par bloc et organisation chaî în ée double e double

(9)

Exemples d

Exemples d impl impl é é mentation de liste mentation de liste (2/3) (2/3)

Liste avec allocation dynamique par enregistrement et organisati Liste avec allocation dynamique par enregistrement et organisation on chaî cha în n ée simple é e simple (ou liste cha (ou liste cha în î ée) e)

Listes doublement cha

Listes doublement chaî î n ées es (standard et circulaire) (standard et circulaire)

(10)

Exemples d

Exemples d impl impl é é mentation de liste mentation de liste (3/3) (3/3)

Liste g

Liste gé én éralis ralisé ée e

(11)

Impl Impl é é mentations de listes mentations de listes (1/2) (1/2)

On fera l

On fera l impl impl é é mentation de 3 listes diff mentation de 3 listes diff é é rentes : rentes :

liste avec allocation statique et organisation contigu liste avec allocation statique et organisation contigu ë; ë ;

liste avec allocation dynamique par enregistrement et organisati liste avec allocation dynamique par enregistrement et organisation on chaî cha în ée simple e simple (liste chaî (liste cha în ée simple) e simple) ; ;

liste avec allocation dynamique par bloc et organisation par dou liste avec allocation dynamique par bloc et organisation par double ble chaî cha înage nage (liste chaî (liste cha în ée double dans un tableau dynamique) e double dans un tableau dynamique) . .

Toutes les listes n

Toutes les listes n auront qu auront qu une seule donn une seule donn é é e e (une chaî (une cha îne de ne de caract

caractè è res) res) et devront être trié et devront être tri ée en ordre croissant. e en ordre croissant.

Seulement quelques services seront implant

Seulement quelques services seront implanté és, par exemple : s, par exemple :

Compter le nombre d

Compter le nombre d enregistrements enregistrements Length( Length ( …) )

Insé Ins érer un nouvel enregistrement rer un nouvel enregistrement Insert(… Insert( …) )

Supprimer un enregistrement existant

Supprimer un enregistrement existant Delete( Delete ( …) )

Rechercher un enregistrement

Rechercher un enregistrement Search( Search ( …) )

Consulter un enregistrement

Consulter un enregistrement Retrieve( Retrieve ( …) )

Cré Cr éer et/ou initialiser la liste de donn er et/ou initialiser la liste de donné ées es Create( Create ( …) )

D étruire la liste de donn truire la liste de donné ées es Destroy(… Destroy( ) )

Afficher le contenu de la liste de donn

Afficher le contenu de la liste de donné ées es PrintList( PrintList (… …) )

Parcourir la liste de donn

Parcourir la liste de donn ées é es GoThrough( GoThrough (… …) )

(12)

Impl Impl é é mentations de listes mentations de listes (2/2) (2/2)

Quelques commentaires avant de commencer Quelques commentaires avant de commencer

Les m

Les mé éthodes r thodes ré éalis alisé ées sont bas es sont basé ées sur quelques approches es sur quelques approches particuli

particuliè ères. En fait, il existe une multitude d res. En fait, il existe une multitude d’ ’approches approches possibles et elles sont tous aussi valables les unes que les possibles et elles sont tous aussi valables les unes que les autres, avec leurs avantages et leurs inconv

autres, avec leurs avantages et leurs inconvé énients. nients.

Il est recommand

Il est recommandé é dans la plupart des cas d’ dans la plupart des cas d utiliser une utiliser une structure globale ou une structure d

structure globale ou une structure d’ ’en en- -tête permettant le tête permettant le stockage des informations g

stockage des informations gé én érales de la liste telles que le rales de la liste telles que le nombre d

nombre d’é ’é l l éments é ments (même si cette mé (même si cette m éthode requiert l thode requiert lé ég èrement plus de rement plus de

m émoire) moire) . .

(13)

Impl Impl é é mentation d mentation d une liste avec allocation une liste avec allocation statique et organisation contigu

statique et organisation contigu ë ë

(14)

Impl Impl émentation d é mentation d une liste avec allocation statique et une liste avec allocation statique et organisation contigu

organisation contigu ë ë (1/14) (1/14) D D é é finition d finition d un exemple de ce type de TDA un exemple de ce type de TDA

Le TDA contient : Le TDA contient :

un tableau de taille fixe contenant les donn

un tableau de taille fixe contenant les donn é é es es (qui peut contenir un (qui peut contenir un nombre maximum d

nombre maximum dé éfini d fini d’ ’enregistrements) enregistrements) ; ; une variable enti

une variable enti è è re contenant l re contenant l indexe du dernier enregistrement indexe du dernier enregistrement pré pr ésent dans le tableau sent dans le tableau (nommons cette variable (nommons cette variable LastPos) LastPos ) ; ;

La variable

La variable LastPos LastPos indique l indique l ’indexe du dernier enregistrement, indexe du dernier enregistrement, c’ c ’est est - à- -dire que dire que LastPos LastPos = n - = n - 1 1 (où (o ù n est le nombre n est le nombre

d’ d ’enregistrements) enregistrements) . Ainsi, lorsqu’ . Ainsi, lorsqu ’il n il n’ ’y a aucun enregistrement y a aucun enregistrement pré pr ésent : sent : LastPos LastPos = - = -1 1

Les fonctions de cr

Les fonctions de cré éation et de destruction de la structure de ation et de destruction de la structure de donn donn ées sont inutiles puisque ces derni é es sont inutiles puisque ces derni ères sont prises en è res sont prises en charge par le compilateur au moment de la d

charge par le compilateur au moment de la d é é claration de la claration de la variable.

variable.

Par contre, le TDA doit être initialis

Par contre, le TDA doit être initialis é é correctement. C correctement. C est est - - à à - - dire dire que la variable

que la variable LastPos LastPos doit être initialisé doit être initialis ée e à à -1. - 1.

(15)

Impl Impl émentation d é mentation d une liste avec allocation statique et une liste avec allocation statique et organisation contigu

organisation contigu ë ë (2/14) (2/14)

1. 1. D éclaration des types n claration des types né écessaires au cessaires au TDA TDA. .

2. 2. Fonction d’ Fonction d initialisation initialisation (mettre la variable (mettre la variable LastPos LastPos à à -1) - 1) . .

void InitList(SList *pList) {

pList->LastPos = -1;

}

#define MAXDATA 1000

#define STRLENGTH 25 typedef struct {

int LastPos;

char Data[MAXDATA][STRLENGTH];

} SList;

SList List;

(16)

Impl Impl émentation d é mentation d une liste avec allocation statique et une liste avec allocation statique et organisation contigu

organisation contigu ë ë (3/14) (3/14)

3. 3. Fonction d’ Fonction d ’insertion insertion (exemple : ajouter l’ (exemple : ajouter l ’enregistrement John) enregistrement John)

1. 1. Description logique. Cette fonction s’ Description logique. Cette fonction s ’effectue en 5 op effectue en 5 opé érations : rations : 1. 1. s’ s ’assurer qu assurer qu’ ’il reste un enregistrement de libre dans le tableau il reste un enregistrement de libre dans le tableau

(facultatif)(facultatif)

; ; 2. 2. trouver la position de l’ trouver la position de l ’enregistrement enregistrement à à ins insé érer dans le tableau rer dans le tableau

(l’(l’enregistrement recherchenregistrement recherchéé doit possdoit possééder une valeur plus grand que celui der une valeur plus grand que celui ààinséinsérer)rer)

; ;

3. 3. effectuer un dé effectuer un d écalage calage à à droite à droite à partir de l partir de l ’endroit d endroit d’ ’insertion; insertion;

(17)

Impl Impl émentation d é mentation d une liste avec allocation statique et une liste avec allocation statique et organisation contigu

organisation contigu ë ë (4/14) (4/14)

3. 3. Fonction d’ Fonction d ’insertion insertion (suite) (suite)

1. 1. Description logique Description logique

(suite)(suite)

. .

4. 4. insé ins érer la nouvelle donn rer la nouvelle donné ée e à à la position trouvé la position trouv ée; e;

5. 5. ajuster les variables de contrôle. ajuster les variables de contrôle.

(18)

Impl Impl émentation d é mentation d une liste avec allocation statique et une liste avec allocation statique et organisation contigu

organisation contigu ë ë (5/14) (5/14)

3. 3. Fonction d’ Fonction d insertion insertion (suite) (suite)

2. 2. D éfinition du prototype de la fonction finition du prototype de la fonction (dé (d éfinition des entr finition des entré ées/sorties) es/sorties)

3. 3. D éfinition des parties logiques par des finition des parties logiques par des pseudo pseudo- -codes codes : :

1. 1. s’ s ’assurer qu assurer qu’ ’il reste un enregistrement de libre dans le tableau; il reste un enregistrement de libre dans le tableau;

2.

2. trouver la position de l’ trouver la position de l ’enregistrement enregistrement à à insé ins érer dans le tableau; rer dans le tableau;

3. 3. effectuer un dé effectuer un d é calage à calage à droite droite à à partir de l’ partir de l ’endroit d endroit d’ ’insertion; insertion;

4. 4. insé ins é rer la nouvelle donné rer la nouvelle donn ée e à à la position trouvé la position trouv é e; e;

5. 5. ajuster les variables de contrôle. ajuster les variables de contrôle.

Position = Recherche plus grand que : NewValue dans : pList void Insert(SList *pList, char NewValue[], int *Success);

i = LastPos

Tant que i >= Position

Valeur à i = Valeur à i + 1 i = i - 1

Valeur à Position = NewValue

Si LastPos < MAXDATA (on peut insérer)

LastPos = LastPos + 1 Success = vrai;

(19)

Impl Impl émentation d é mentation d une liste avec allocation statique et une liste avec allocation statique et organisation contigu

organisation contigu ë ë (6/14) (6/14)

3. 3. Fonction d’ Fonction d insertion insertion (suite) (suite)

4. 4. Écriture finale du code en langage C É criture finale du code en langage C

void Insert(SList *pList, char NewValue[], int *Success) {

int i, Pos;

/*** 1ière étape : Vérifie que la liste existe et qu'elle n'est pas remplie ***/

if ((pList != NULL) && (pList->LastPos < MAXDATA)) { /*** 2ière étape : Recherche du point d'insertion ***/

Pos = SearchGreater(pList, NewValue);

/* Si le point d'insertion est valide on insère */

if (Pos != -1) {

/*** 3ième étape : Décalage à droite à partir du point d'insertion ***/

for (i = pList->LastPos; i >= Pos; i--) { strcpy(pList->Data[i+1], pList->Data[i]);

}

/*** 4ième étape : Copie les données ***/

strcpy(pList->Data[Pos], NewValue);

/*** 5ième étape : Ajuste les variables de contrôle ***/

pList->LastPos++;

*Success = 1;

} else {

*Success = 0;

} } else

*Success = 0;

}

(20)

Impl Impl émentation d é mentation d une liste avec allocation statique et une liste avec allocation statique et organisation contigu

organisation contigu ë ë (7/14) (7/14)

4. 4. Fonction de suppression Fonction de suppression (exemple : supprimer l’ (exemple : supprimer l ’enregistrement Katy) enregistrement Katy)

Attention

Attention à à la mé la m éthode de suppression direct qui est inappropri thode de suppression direct qui est inappropri ée é e

1. 1. Description logique. Cette fonction s’ Description logique. Cette fonction s ’effectue en 4 op effectue en 4 opé érations : rations :

1. 1. s’ s ’assurer qu assurer qu’ ’il existe au moins un enregistrement de libre dans le tableau; il existe au moins un enregistrement de libre dans le tableau;

(facultatif car l

(facultatif car l’é’étape suivante peut faire cette tâche)tape suivante peut faire cette tâche)

2. 2. trouver la position de l’ trouver la position de l ’enregistrement enregistrement à à supprimer dans le tableau; supprimer dans le tableau;

(21)

Impl Impl émentation d é mentation d une liste avec allocation statique et une liste avec allocation statique et organisation contigu

organisation contigu ë ë (8/14) (8/14)

4. 4. Fonction de suppression Fonction de suppression (suite) (suite)

1. 1. Description logique Description logique (suite) (suite) . .

3. 3. effectuer un dé effectuer un d é calage à calage à gauche à gauche à partir de l’ partir de l ’endroit de suppression; endroit de suppression;

4. 4. ajuster les variables de contrôle. ajuster les variables de contrôle.

(22)

Impl Impl émentation d é mentation d une liste avec allocation statique et une liste avec allocation statique et organisation contigu

organisation contigu ë ë (9/14) (9/14)

4. 4. Fonction de suppression Fonction de suppression (suite) (suite)

2. 2. D éfinition du prototype de la fonction finition du prototype de la fonction (dé (d éfinition des entr finition des entré ées/sorties) es/sorties)

3. 3. D éfinition des parties logiques par des finition des parties logiques par des pseudo pseudo- -codes codes : :

1. 1. s’ s ’assurer qu assurer qu’ ’il existe au moins un enregistrement de libre dans le tableau; il existe au moins un enregistrement de libre dans le tableau;

2.

2. trouver la position de l’ trouver la position de l ’enregistrement enregistrement à à supprimer dans le tableau; supprimer dans le tableau;

3. 3. effectuer un dé effectuer un d é calage à calage à gauche à gauche à partir de l’ partir de l ’endroit de suppression; endroit de suppression;

4. 4. ajuster les variables de contrôle. ajuster les variables de contrôle.

Position = Recherche exactement : OldValue) dans : pList void Delete(SList *pList, char OldValue[], int *Success);

i = Position

Tant que i < LastPos

Valeur à i = Valeur à i + 1 i = i + 1

LastPos = LastPos - 1 Success = vrai

Si LastPos >= 0 (on peut continuer)

(23)

Impl Impl émentation d é mentation d une liste avec allocation statique et une liste avec allocation statique et organisation contigu

organisation contigu ë ë (10/14) (10/14)

4. 4. Fonction de suppression Fonction de suppression (suite) (suite)

4. 4. Écriture finale du code en langage C É criture finale du code en langage C

void Delete(SList *pList, char OldValue[], int *Success) {

int i, Pos;

/*** 1ière étape : Vérifie que la liste existe et qu'elle n'est pas vide ***/

if ((pList != NULL) && (pList->LastPos >= 0)) {

/*** 2ième étape : Recherche l'enregistrement à supprimer ***/

Pos = SearchEqual(pList, OldValue);

/* Si le point de suppression est valide on supprime */

if (Pos != -1) {

/*** 3ième étape : Décalage à gauche à partir du point de suppression ***/

for (i = Pos; i < pList->LastPos; i++)

strcpy(pList->Data[i], pList->Data[i+1]);

/*** 4ième étape : Ajuste les variables de contrôle ***/

pList->LastPos--;

*Success = 1;

} else {

*Success = 0;

}

} else {

*Success = 0;

} }

(24)

Impl Impl émentation d é mentation d une liste avec allocation statique et une liste avec allocation statique et organisation contigu

organisation contigu ë ë (11/14) (11/14)

5. 5. Fonction de recherche Fonction de recherche (exemple : rechercher l (exemple : rechercher l ’enregistrement Patrick) enregistrement Patrick)

1. 1. Description logique. Cette fonction s’ Description logique. Cette fonction s ’effectue par : effectue par :

parcourir le tableau tant que les conditions de recherche ne soi

parcourir le tableau tant que les conditions de recherche ne soient pas ent pas atteintes. Ces conditions peuvent varier en fonction des besoin

atteintes. Ces conditions peuvent varier en fonction des besoins et peuvent s et peuvent être, par exemple :

être, par exemple :

1. 1. l’ l ’enregistrement uniquement enregistrement uniquement é égal gal à à celui recherché celui recherch é; ; 2. 2. l’ l ’enregistrement plus petit que celui recherch enregistrement plus petit que celui recherché é; ; 3.

3. l’ l ’enregistrement plus grand que celui recherch enregistrement plus grand que celui recherché é; ; 4.

4. ... . ... .

de plus, cette r

de plus, cette ré é f érence peut prendre deux formes d rence peut prendre deux formes dé é pendamment des pendamment des besoins et de la m

besoins et de la mé éthode d thode d ’impl implé émentation du TDA : mentation du TDA :

1. 1. l’ l ’indexe du tableau correspondant indexe du tableau correspondant à à l’ l ’enregistrement enregistrement

(ou -(ou -1 si aucun r1 si aucun réésultat)sultat)

; ; 2.

2. le pointeur correspondant à le pointeur correspondant à l l’ ’enregistrement enregistrement

(ou NULL si aucun r(ou NULL si aucun réésultat)sultat)

. .

2. 2. D éfinition du prototype de la fonction finition du prototype de la fonction (dé (d éfinition des entr finition des entré ées/sorties) es/sorties)

3. 3. D éfinition de la recherche par un finition de la recherche par un pseudo pseudo- -code code : :

int Search(SList *List, char Value[]);

i = 0;

Tant que i <= LastPos et que la valeur de i < Value : i = i + 1

(25)

Impl Impl émentation d é mentation d une liste avec allocation statique et une liste avec allocation statique et organisation contigu

organisation contigu ë ë (12/14) (12/14)

5. 5. Fonction de recherche Fonction de recherche (suite) (suite)

4. 4. Écriture finale du code en langage C : É criture finale du code en langage C :

int SearchEqual(SList *pList, char Value[]) {

int i = 0, iRes = -1, n = Length(pList);

/* Vérifie que la liste ne soit pas vide */

if (n != 0) {

while ((i <= pList->LastPos) && (strcmp(pList->Data[i], Value) < 0)) i++;

/* S'assure que l'élément recherché est celui trouvé */

if ((i <= pList->LastPos) && (strcmp(pList->Data[i], Value) == 0)) { iRes = i;

} }

return iRes;

}

int SearchGreater(SList *pList, char Value[]) {

int i = 0, iRes = -1, n = Length(pList);

/* Vérifie que la liste ne soit pas pleine */

if (n < MAXDATA) {

while ((i <= pList->LastPos) && (strcmp(pList->Data[i], Value) <= 0)) i++;

iRes = i;

}

return iRes;

}

(26)

Impl Impl émentation d é mentation d une liste avec allocation statique et une liste avec allocation statique et organisation contigu

organisation contigu ë ë (13/14) (13/14)

6. 6. Fonction de comptage Fonction de comptage

7. 7. Fonction questionnant le TDA à Fonction questionnant le TDA à savoir s’ savoir s ’il est vide il est vide

8. 8. Fonction retournant un é Fonction retournant un él ément en fonction de sa position ment en fonction de sa position

int Length(SList *pList) {

return pList->LastPos + 1;

}

int IsEmpty(SList *pList) {

return (Length(pList) == 0) ? 1 : 0;

}

char* Retrieve(SList *pList, int i) {

if ((i > 0) && (i <= Length(pList))) { return pList->Data[i-1];

} else {

return NULL;

} }

(27)

Impl Impl émentation d é mentation d une liste avec allocation statique et une liste avec allocation statique et organisation contigu

organisation contigu ë ë (14/14) (14/14) Quelques commentaires

Quelques commentaires

On remarque que le d

On remarque que le d écalage des é calage des é él éments devient un probl ments devient un problè ème me de performance important associ

de performance important associ é é à à la maintenance des la maintenance des

donn donn ées si la taille des ces derni é es si la taille des ces derni ères devient consid è res devient considé érable ou si rable ou si il y a un grand nombre de manipulations.

il y a un grand nombre de manipulations.

Les TDA bas

Les TDA basé és sur les structures par cha s sur les structures par chaî î nage sont une solution nage sont une solution trè tr ès efficace au probl s efficace au problè ème de d me de dé écalage pour les insertions et calage pour les insertions et

suppressions entre les

suppressions entre les é él éments ments

Références

Documents relatifs

• premièrement c’est avoir une idée approfondie sur l’application de l’approche théorique dans le milieu professionnel ce qui nous permettra de comprendre et de maîtriser

Affecter au champ 'Adresse gauche' du nœud référencé par P, l'adresse Q. AFF_VAL( P,

© ÉTS - GPA - GPA665 46 Implémentation d’une liste avec allocation dynamique par bloc et Implémentation d’une liste avec allocation dynamique par bloc et organisation

L'avantage de la méthode boothroyd est complètement prédictive rapide et qu'elle peut être adaptée à différents matériaux, et nous avons conclu avec se modèle

Ces étudiants, rassemblés pour l’amélioration de la formation et la dynamique de la recherche, voudraient porter un message de réforme au sein du conseil d’administra- tion de

ŒUVRE 16 Notions travaillées : - Présent des verbes - Imparfait des verbes - Accord sujet-verbe Avec sujet éloigné du verbe. Cette peinture à l’huile, réalisée au 16 ème

Adapter la fonction de création pour créer une liste linéaire chaînée dans l'ordre FIFO à partir de ce fichier binaire.. Exercice 2 : Supposons que les données

- Pour le stockage du fioul, si la cuve n’a pas de doubles parois, il y a la possibilité d’un déversement sans possibilité de la contenir. La pollution se propagerait alors