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