Académique Documents
Professionnel Documents
Culture Documents
L1 informatique-mathématiques
V.Marion
1
Organisation du module
Volume horaire
6h CM : pile/file/liste, listes chaînées, récursivité, tris
6h TD + 15h TP : application des notions en C.
Evaluation
C.C. : TPs notés + évaluations sur les TPs + DS
Note finale = 2/3 Exam + 1/3 CC
Organisation du module
Bibliographie
Concepts fondamentaux de l’informatique, A.Aho - J.Ullman,
DUNOD
Conception d’algorithmes, P.Bosc - M.Guyomard - L.Miclet,
EYROLLES
Algorithmes et structures de données génériques, M.Divay,
DUNOD
Programmation. Principes et pratique en C++, B.Stroustrup,
PEARSON Education
Les listes - Définitions
Liste
Liste : séquence finie de 0 ou plusieurs éléments d’un type donné.
Exemples :
I liste des nombres premiers inférieurs à 20 : (2, 3, 5, 7, 11, 13, 17, 19)
I liste de caractères : baba
I liste des sommets du cube unité : ((0,0,0), (1,0,0), (1,1,0), (0,1,0),
(0,1,1), (0,0,1), (1,0,1), (1,1,1))
4
Parties d’une liste - Exemple : L = abc
5
Parties d’une liste - Exemple : L = abc
6
Parties d’une liste - Exemple : L = abc
7
Parties d’une liste - Exemple : L = abc
8
Parties d’une liste - Exemple : L = abc
9
Parties d’une liste - Exemple : L = abc
10
Parties d’une liste - Exemple : L = abc
11
Parties d’une liste - Exemple : L = abc
12
Parties d’une liste - Exemple : L = abc
Structure
struct Liste {
type_elt Tab[Max] ;
int taille ; // taille <= Max
};
Opérations sur les listes
Opérations possibles
rechercher : un élément dans la liste
modifier : un élément de la liste
insérer : un élément à n’importe quel endroit de la liste
supprimer : n’importe quel objet de la liste en la mettant à jour
ensuite (en fonction de sa valeur ou de sa position)
afficher : la liste
concaténer : 2 listes (exemple : concaténer L1 = abc et L2 = ca
donnera une liste L = abcca)
est_vide : indique si la liste est vide
est_pleine : indique si la liste est pleine
Opérations sur les listes
Opérations possibles
rechercher : un élément dans la liste
modifier : un élément de la liste
insérer : un élément à n’importe quel endroit de la liste
supprimer : n’importe quel objet de la liste en la mettant à jour
ensuite (en fonction de sa valeur ou de sa position)
afficher : la liste
concaténer : 2 listes (exemple : concaténer L1 = abc et L2 = ca
donnera une liste L = abcca)
est_vide : indique si la liste est vide
est_pleine : indique si la liste est pleine
24
Liste statique - rechercher
25
Liste statique - modifier
26
Liste statique - rechercher
27
Liste statique - rechercher
}
Liste statique - rechercher
}
Liste statique - rechercher
}
Liste statique - rechercher
}
Liste statique - rechercher
}
Liste statique - rechercher
}
Liste statique - rechercher
}
Liste statique - rechercher
Structure
struct Liste {
type_elt *Tab ; // adresse du 1er élément
int taille ;
};
38
Types de données basées sur les listes - LA PILE
Caractéristiques
Tableau : même représentation que la liste.
Opérations : toutes effectuées à une extrémité de la liste = sommet.
Structure
struct Pile {
type_elt Tab[Max] ;
int sommet ; // sommet (< Max), indice de l’élément à empiler
};
Opérations sur les piles
Opérations possibles
empiler (ou push) : déposer un élément au sommet de la pile
dépiler (ou pop) : supprimer un élément du sommet de la pile
afficher : la pile
est_vide : indique si la pile est vide
est_pleine : indique si la pile est pleine
vider : initialise la pile à vide
40
Opérations sur les piles
Opérations possibles
empiler (ou push) : déposer un élément au sommet de la pile
dépiler (ou pop) : supprimer un élément du sommet de la pile
afficher : la pile
est_vide : indique si la pile est vide
est_pleine : indique si la pile est pleine
vider : initialise la pile à vide
41
Pile - est_vide
Structure
struct File {
type_elt Tab[Max] ;
int taille ; // taille <= Max)
};
44
Opérations sur les files
Opérations possibles
enqueue : ajoute un élément en queue de liste
dequeue : supprime l’élément de tête de la liste
afficher : la file
est_vide : indique si la file est vide
est_pleine : indique si la file est pleine
vider : initialise la file à vide
45
Opérations sur les files
Opérations possibles
enqueue : ajoute un élément en queue de liste
dequeue : supprime l’élément de tête de la liste
afficher : la file
est_vide : indique si la file est vide
est_pleine : indique si la file est pleine
vider : initialise la file à vide
46
Opérations sur les files - enqueue
}
Opérations sur les files - enqueue
}
Opérations sur les files - enqueue
}
Opérations sur les files - enqueue
}
Opérations sur les files - enqueue
}
Opérations sur les files - enqueue
Structure
struct File {
type_elt Tab[Max] ; //Max-1 éléments possibles
int avant ;
int arriere ;
53
LA FILE : représentation avec tableau circulaire
Propriétés spécifiques
Taille du tableau : fixée à N+1 pour contenir N éléments.
54
LA FILE : représentation avec tableau circulaire
Propriétés spécifiques
Taille du tableau : fixée à N+1 pour contenir N éléments.
file vide : avant = arriere.
55
LA FILE : représentation avec tableau circulaire
Propriétés spécifiques
Taille du tableau : fixée à N+1 pour contenir N éléments.
file vide : avant = arriere.
file pleine : avant = arriere + 1.
56
LA FILE : représentation avec tableau circulaire
Propriétés spécifiques
Taille du tableau : fixée à N+1 pour contenir N éléments.
file vide : avant = arriere.
file pleine : avant = arriere + 1.
Structure
struct File {
type_elt Tab[Max] ; //Max-1 éléments possibles
int avant ; // =0 au départ
int arriere ; // =0 au départ
};
Opérations sur les files - enqueue
}
Opérations sur les files - enqueue
}
Opérations sur les files - enqueue
}
Opérations sur les files - enqueue
}
Opérations sur les files - enqueue
}
Opérations sur les files - enqueue