définition d’un maillon de liste

20
Définition d’un maillon de liste En langage algorithmique Exemple de traduction en C 1 typedef struct maillon { T info; struct maillon *succ; } maillon; typedef maillon *liste;

Upload: lewis

Post on 19-Jan-2016

64 views

Category:

Documents


0 download

DESCRIPTION

Définition d’un maillon de liste. En langage algorithmique. Exemple de traduction en C. typedef struct maillon { T info; struct maillon * succ ; } maillon ; typedef maillon * liste ;. Manipulation d’une LSC. Exemples. 1. Tester la présence d’un élément - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Définition d’un maillon de liste

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 d’un maillon de liste

2

Manipulation d’une LSC

Page 3: Définition d’un maillon de liste

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 d’un maillon de liste

Tester la présence d’un élément

4

Premier contact avec le langage algorithmique

Page 5: Définition d’un maillon de liste

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 d’un maillon de liste

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 d’un maillon de liste

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 d’un maillon de liste

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 d’un maillon de liste

Créer une LSC depuis la ligne de cmd

9

Alternative sans utiliser la variable nouveau

Page 10: Définition d’un maillon de liste

Supprimer un élément d’une LSC

10

A B DC

courprec cour

Page 11: Définition d’un maillon de liste

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 d’un maillon de liste

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 d’un maillon de liste

Insérer un élément dans une LSC triée

13

A B DC

prec cour

Page 14: Définition d’un maillon de liste

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 d’un maillon de liste

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 d’un maillon de liste

Insérer un élément dans une LSC triée

16

Cas général : cœur de liste

Page 17: Définition d’un maillon de liste

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 d’un maillon de liste

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 d’un maillon de liste

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 d’un maillon de liste

Supprimer un élément d’une LSC triée

20

En revanche, on peut optimiser le parcours itératif