Transcript Document
1
II. Chaînage, SDD séquentielles
Chaînage et LSC : motivation et principe
Manipuler la LSC : exemples
Variantes : LDC, liste circulaire, …
Etude de cas : réalisation d’un buffer clavier
Manipulation d’une LSC
2
Simples
Manipulations
de pointeurs
Séquentiel
LSC
Manipulation
Principe
Exemples
3
Objectifs pédagogiques
S’approprier
les techniques de manipulation de base
Se familiariser avec le langage algorithmique
Les exemples
1.
Tester la présence d’un élément
2. Créer une LSC depuis la ligne de commande
3. Supprimer un élément d’une LSC
4. Insérer un élément dans une LSC triée
5. Supprimer un élément d’une LSC triée
Séquentiel
LSC
Manipulation
Exemples
Tester la présence d’un élément
4
Premier contact avec le langage algorithmique
Séquentiel
LSC
Manipulation
Exemple 1
Tester la présence d’un élément
5
Une seconde version
Economie d’une variable contre entorse à une bonne pratique
à vous de choisir votre « camp »
Séquentiel
LSC
Manipulation
Exemple 1
Créer une LSC depuis la ligne de cmd
6
>A
>B
A
B
Variable l :
adresse de la tête
Séquentiel
LSC
A
Manipulation
B
Exemple 2
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
Séquentiel
LSC
Manipulation
Exemple 2
Créer une LSC depuis la ligne de cmd
8
Séquentiel
Reste de la liste
Quel est l’intérêt des variables queue et nouveau ?
LSC
Manipulation
Exemple 2
Créer une LSC depuis la ligne de cmd
9
Séquentiel
Alternative sans utiliser la variable nouveau
LSC
Manipulation
Exemple 2
Supprimer un élément d’une LSC
10
A
Séquentiel
LSC
prec
cour
cour
B
C
D
Manipulation
Exemple 2
Supprimer un élément d’une LSC
11
Hypothèse : liste non vide
Cas de la tête de liste
Cas spécial de la tête de liste
Séquentiel
LSC
Manipulation
Exemple 3
Supprimer un élément d’une LSC
12
Reste de la liste
Cas g
Cas g
Séquentiel
LSC
Manipulation
Exemple 3
Insérer un élément dans une LSC triée
13
prec
A
Séquentiel
B
LSC
cour
C
Manipulation
D
Exemple 2
Insérer un élément dans une LSC triée
14
Cas spécial : l est vide : la donnée l est modifiée !
Séquentiel
LSC
Manipulation
Exemple 4
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 !
Séquentiel
LSC
Manipulation
Exemple 4
Insérer un élément dans une LSC triée
16
Cas général : cœur de liste
Cas généra
Séquentiel
LSC
Manipulation
Exemple 4
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 liste
La queue de liste
Ici : cas spécial : la queue de liste
Ca
Séquentiel
LSC
Manipulation
Exemple 4
Supprimer un élément d’une LSC triée
18
Séquentiel
Adaptation de l’exemple 3
Il faut sécuriser : la liste peut être vide
LSC
Manipulation
Exemple 5
Supprimer un élément d’une LSC triée
19
Le traitement principal reste le même que celui de l’exemple 3
Cas général : ac
Séquentiel
LSC
Manipulation
Exemple 5
Supprimer un élément d’une LSC triée
20
En revanche, on peut optimiser le parcours itératif
Cas général : actio
Séquentiel
LSC
Manipulation
Exemple 5