définition dun maillon de liste en langage algorithmiqueexemple de traduction en c 1 typedef struct...
TRANSCRIPT
![Page 1: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/1.jpg)
Définition d’un maillon de listeEn langage algorithmique
Exemple de traduction en C
1
typedef struct maillon
{
T info;
struct maillon *succ;
} maillon;
typedef maillon *liste;
![Page 2: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/2.jpg)
2
Manipulation d’une LSC
![Page 3: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/3.jpg)
Exemples
3
1. Tester la présence d’un élément2. Créer une LSC depuis la ligne de
commande3. Supprimer un élément d’une LSC4. Insérer un élément dans une LSC triée5. Supprimer un élément d’une LSC triée
![Page 4: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/4.jpg)
Tester la présence d’un élément
4
Premier contact avec le langage algorithmique
![Page 5: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/5.jpg)
Tester la présence d’un élément
5
Une seconde versionEconomie d’une variable contre entorse à une bonne pratiqueà vous de choisir votre « camp »
![Page 6: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/6.jpg)
Créer une LSC depuis la ligne de cmd
6
AVariable l :adresse de la tête
>A
A
>B B
B
![Page 7: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/7.jpg)
Créer une LSC depuis la ligne de cmd
7
Déclarations : à noter : donnée modifiée : l se comporte comme une variable globale Cas de la tête de liste
![Page 8: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/8.jpg)
Créer une LSC depuis la ligne de cmd
8
Reste de la listeQuel est l’intérêt des variables queue et nouveau ?
![Page 9: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/9.jpg)
Créer une LSC depuis la ligne de cmd
9
Alternative sans utiliser la variable nouveau
![Page 10: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/10.jpg)
Supprimer un élément d’une LSC
10
A B DC
courprec cour
![Page 11: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/11.jpg)
Supprimer un élément d’une LSC
11
Hypothèse : liste non videCas de la tête de liste
Cas spécial de la tête de liste
![Page 12: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/12.jpg)
Supprimer un élément d’une LSC
12
Reste de la liste
Cas général : action 1. la suppression (attention aux raccords)
Cas général : action 2. l’itération : faire mieux que pour l’ex 3
![Page 13: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/13.jpg)
Insérer un élément dans une LSC triée
13
A B DC
prec cour
![Page 14: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/14.jpg)
Insérer un élément dans une LSC triée
14
Cas spécial : l est vide : la donnée l est modifiée !
![Page 15: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/15.jpg)
Insérer un élément dans une LSC triée
15
Cas spécial : insertion en tête de liste : la donnée l est modifiée !
![Page 16: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/16.jpg)
Insérer un élément dans une LSC triée
16
Cas général : cœur de liste
![Page 17: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/17.jpg)
Insérer un élément dans une LSC triée
17
Toujours se poser la question :Est-il nécessaire d’effectuer un traitement spécial pour
La tête de listeLa queue de liste
Ici : cas spécial : la queue de liste
![Page 18: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/18.jpg)
Supprimer un élément d’une LSC triée
18
Adaptation de l’exemple 3Il faut sécuriser : la liste peut être vide
![Page 19: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/19.jpg)
Supprimer un élément d’une LSC triée
19
Le traitement principal reste le même que celui de l’exemple 3
![Page 20: Définition dun maillon de liste En langage algorithmiqueExemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon;](https://reader036.vdocuments.pub/reader036/viewer/2022062318/551d9da4497959293b8d525c/html5/thumbnails/20.jpg)
Supprimer un élément d’une LSC triée
20
En revanche, on peut optimiser le parcours itératif