Structure de données Les listes.

Slides:



Advertisements
Présentations similaires
Structures de données et complexité
Advertisements

Structures de données et complexité LIFO – FILO – FIFO – etc…
Au programme du jour …. Un peu plus de structures de données
Chapitre IV. Structures linéaires (piles, files, listes chaînées)
Structures de données linéaires
II. Chaînage, SDD séquentielles
Présentation Structures de Données et TDA
IFT-2000: Structures de données Piles et files Dominic Genest, 2009.
Structures de données IFT-10541
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
ETNA – 1ème année Guillaume Belmas –
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, …  Etude de cas : réalisation d’un buffer clavier.
Base de données de construction d’Agata Agata France C.Aufranc, O.Stezowski 31 Août 2011.
Recherche des fonctions pour la rédaction de l'expression fonctionnelle du besoin à l'aide d'un outil graphique : Le diagramme des inter-acteurs. Le diagramme.
C++ Les fonctions. Présentation Utilité : Dès qu'un programme dépasse la centaine de lignes de code, il est pratique de pouvoir le décomposer en plusieurs.
CINI – Li115 1 Semaine 9 Algorithmes de tri ● Introduction ● Tri à bulle ● - principe ● - algorithme ● - efficacité ● Tri par sélection ● - principe, algorithme,
Choisir un TNI. Pourquoi utiliser un TNI en classe :
Octobre 2013 Smartweb Refonte des sites Internet AIDE – K-Sup v6.
Résolutions et réponses
Semaine 8 Retour sur les tableaux : fonctions et récursivité
Test sur la puberté sur 20 points
Suites ordonnées ou mettre de l’ordre
SanMarco – Outil MicroStrategy Manuel d’utilisation sur les fonctionnalités 27 juillet 2015.
Les tableaux différencier les variables simples des variables indicées (ordonnées et numérotées) un identificateur unique désigne un ensemble, une collection.
Modèle objet : les classes
Utilisation des Gammes La chaîne numérique en Productique
Pierre Joli Cours de Mathématique Pierre Joli
Construire des requêtes
Eléments d’Informatique Cours11 – Allocation dynamique, listes chaînées Catherine Recanati.
Résolutions et réponses
Sous menu de l’application «micro» (‘IHM’)
Techniques de décomposition
Semaine #1 INF130 par Frédérick Henri.
Javadoc et débogueur Semaine 03 Version A17.
I21 Algorithmique et programmation II
Principes de programmation (suite)
Résultat de d’une étude auprès des membres du Syndicat de Champlain
Références.
Les bases de données et le modèle relationnel
Tableaux à plusieurs dimensions en langage C
2°9 lycée Beauregard à Montbrison
Présentation Structure données abstraite (TDA) Rappel : File
Plans d’experiences : plans de melanges
Routage S 3 - Questionnaire N°1
Piles.
Programmation en C++ Fonctions
Cours N°9: Algorithmiques Les Tableaux 1
Containeurs & Itérateurs
1 RECURSIVITE PRESENTATION Ch. PAUL ALGORITHMIQUE Présentation de la récursivité.
Type Concret – Type Abstrait
INDICATEURS ET TABLEAUX DE BORD EN MAINTENANCE. Définitions Indicateur : chiffre significatif d’une situation économique pour une période donnée. Tableau.
Feuille de route Espace de travail Création de diapositives
Evaluation par compétences
Les classes et les objets
Programmation Android Les listes
Le test à Moi Départ Attention, ce test est musical.
Les structures de base Listes chainées. Listes Les listes(similaire aux tableaux) sont des structures informatiques qui permettent de garder en mémoire.
Position, dispersion, forme
BUFFER CIRCULAIRE Meryem EL BAKRI. PLAN Introduction Buffer circulaire Fonctionnement.
Information, Calcul, Communication
CSI 3505 Algorithmes Voraces
Structure de données utiles
Flowchart Itération Cours 04.
Principes de programmation (suite)
Piles et files.
LISTES.
Présentation Chaînage dynamique Retour sur les tableaux
Les tris Tri Action de mettre une structure de données en ordre (croissant ou décroissant). Le plus simple est d’insérer en ordre. Les algorithmes de tri.
Listes Chaînées.
STREAMS (et fichiers).
Transcription de la présentation:

Structure de données Les listes

Structure de données Liste Structure de données permettant de conserver des données consécutivement de façon linéaire. Services offerts : Insérer un élément Enlever un élément Chercher un élément La liste est-elle vide ? Nombre d’éléments ...

Structure de données Implémentation Dans un tableau statique Par chaînage dynamique Dans tous les cas on peut faire l’implémentation en conservant des informations sur la liste à l’extérieur de la liste

Structure de données Représentation graphique Dans un tableau statique Simplement chaînée Doublement chaînée

Structure de données Représentation graphique avec infos sur la liste Nombre d’éléments Debut Fin 4 Information supplémentaire

Structure de données Implémentation du déplacement À partir d’un indice (comme un tableau) On passe toujours l’indice en paramètre Ex: liste.insere(element,2); //insère à la 2ième position À partir d’une position courante implicite dans la liste L’insertion se fait toujours à une position courante Exemple : liste.premier(); //position au premier élément liste.suivant(); //passe au suivant liste.insere(element); //insère à la 2ième position

Structure de données Via un itérateur (une classe définie) fourni par la liste. L’utilisateur peut obtenir l’itérateur de la liste Iterateur position = liste.iterateur(); position.suivant() //déplace l’itérateur position.insere(element); *Rend le déplacement vraiment indépendant de la liste. *C’est la version implémentée dans Java (java.util.LinkedList et java.util.ListIterator)

Structure de données Exemple d’une classe itérateur La liste Lien sur le précédent Position courante Un objet de la classe Iterateur

Structure de données Pourquoi choisir une implémentation plutôt qu’une autre ? Tableau statique Nombre d’éléments maximum connu Données de petite taille Simplement chaînée Nombre d’éléments maximum inconnu, beaucoup d’insertion et peu de recherche Données de grande taille (autre langage que Java)

Structure de données Pourquoi choisir une implémentation plutôt qu’une autre ? Doublement chaînée Nombre d’éléments maximum inconnu, peu d’insertion et beaucoup de recherche Itérateur Sauve de l’espace mémoire par rapport à la liste doublement chaînée Rendre l’itérateur indépendant de la liste Peut avoir plusieurs itérateurs sur une même liste

Structure de données Que faire pour implémenter une liste ? Décider du choix de l’implémentation Décider des services à offrir Implémenter un service à la fois Tester tous les scénarios possibles (début, milieu, fin, vide) pour un service avant de passer au suivant Tester des combinaisons (insère, insère , cherche , supprime, insère,...)

Liste que nous implémenterons Debut Fin Nombre Éléments Structure de données Liste que nous implémenterons Debut Fin Nombre Éléments Position courante 4

Retour sur la pile et la file Structure de données Retour sur la pile et la file

Structure de données Implémentation d’une pile en composant avec une liste On peut voir la pile comme un cas particulier d’une liste. Empile //insèreDébut Depile //getElement + supprime estVide //estVide Vider //supprimeTout DepileSansEnlever //getElement

Structure de données Implémentons d’une file avec une liste On peut voir la file comme un cas particulier d’une liste. Enfile //insère à la fin Defile //premier + getElement() + supprime estVide //estVide Vider //supprimeTout DefileSansEnlever //premier + getElement()