II. Chaînage, SDD séquentielles

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Structures de données avancées : Principales structures de fichiers
Structures de données avancées : B arbres
Structures de données avancées : Principales structures de données
Structures de données avancées : Introduction
Chap. 4 Recherche en Table
Cours Algorithmique et Analyse : Structures linéaires
Cours n° 6 Standard Template Library I.
Structures de données et complexité
Structures de données et complexité LIFO – FILO – FIFO – etc…
GEF 243B Programmation informatique appliquée Décisions de design avec structures de données §15.1 – 15.2.
Types de données abstraites
Cours n° 8 Conception et Programmation à Objets
Chap. 1 Structures séquentielles : listes linéaires
FLSI602 Génie Informatique et Réseaux
Chapitre IV. Structures linéaires (piles, files, listes chaînées)
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
A B D A B D LSC avec « sentinelle »
II. Chaînage, SDD séquentielles
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
II. Chaînage, SDD séquentielles
Définition d’un maillon de liste
IFT-2000: Structures de Données Listes chaînées Dominic Genest, 2009.
Standard Template Library (STL)
Structures de données IFT-2000
Etude de cas : buffer clavier
Les fichiers indexés (Les B-arbres)
IFT-2000: Structures de données
Structures de données IFT-2000
Structures de données IFT-2000 Abder Alikacem Standard Template library Édition Septembre 2009 Département dinformatique et de génie logiciel.
Structures de données IFT-10541
Présentation Structures de Données et TDA
Sixième cours Les chaînes de caractères et le passage de paramètres par référence Passage de paramètres par référence String.h.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Standard Template Library
1 Le fichier séquentiel Suite finie déléments dun même type Exemples : – fichier des livres dune bibliothèque – enregistrements sur un magnétophone – ensemble.
IV. Arbres  Arbre binaire (AB) Représentation SDD d’un AB
Structures de données IFT-2000
Structures de données IFT-2000 Abder Alikacem Retour sur les listes ordonnées Département dinformatique et de génie logiciel Édition Septembre 2009.
Le langage C Structures de données
Les structures de données séquentielles contiguës
Le langage C Rappel Pointeurs & Allocation de mémoire.
Ch. PAUL - Piles et Files à l'aide de listes chainées
LES PILES ET FILES.
Université Mohammed V-Agdal École Supérieure de Technologie Salé
Labo II : Tableaux et pointeurs
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.
Structures de données avancées : Fichiers uni-dimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
ETNA – 1ème année Guillaume Belmas –
Structures de données avancées : Concepts du Multidimensionnel D. E ZEGOUR Institut National d ’Informatique.
Structures simples et tableaux Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
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.
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : B arbres
Structures de données avancées : Variantes des B arbres
1 UMLV  FICHIERS Mémoire de masse découpée en blocs Fichier :liste chaînée de blocs, ou arbre de blocs (répertoires - fichiers)‏ Bloc d’éléments Bloc.
Structures de données avancées : Principales structures de fichiers
Introduction au langage C Structures de données
Structures de données avancées : Introduction D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Principales structures de données
 Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Chaînage et LSC : motivation et principe  Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, …  Etude de cas : réalisation d’un buffer clavier.
CSI2510 Structures des Données et Algorithmes
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
II. Chaînage, SDD séquentielles
Transcription de la présentation:

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

Exemple – problématique Gestion des références des livres d’une bibliothèque Tableau des références Rangement par ordre alphabétique Parcours séquentiel Problèmes Insertion d’une nouvelle référence  Déplacer toutes les références > position d’insertion Même type de problème avec la suppression Pré allocation d’un tableau Beaucoup d’espace inoccupé en fin de tableau Taille de liste limitée par la taille du tableau Séquentiel Chaînage Motivation

Exemple – solution Principe du chaînage Conséquences Découpler ordre des références et ordre des index Associer à chaque réf. l’index de la réf. suivante Conséquences Organisation adaptée à un traitement séquentiel Comme pour le tableau Performance Insertion et suppression : impact seulement local Séquentiel Chaînage Principe

Liste simplement chaînée (LSC) Suite d’éléments Eléments non indexés Pas d’accès direct Eléments chaînés Accès depuis l’élément précédent : son prédécesseur Le premier élément : la tête de liste : sans prédécesseur (A) Le dernier élément : la queue de liste : sans successeur (D) Pour accéder à un élément Partir de la tête de liste (qui représente la liste) Parcourir tous les successeurs jusqu’à l’élément A B D Séquentiel LSC Définition

Représentation V1: statique Deux tableaux de même taille 1. Tableau e d’éléments non ordonnés 2. Tableau s des index des successeurs D’où succ(e[i]) = e[s[i]] Conséquence Insertion et suppression : impact seulement local Séquentiel LSC Statique

Etat initial de la liste B D 1 A 2 D 3 B 4 5 \0 1 3 2 5 4 \0 Séquentiel LSC Statique Exemple

Après insertion de C entre B et D C 1 A 2 D 3 B 4 5 \0 2 1 3 5 4 \0 Séquentiel LSC Statique Exemple

Problème de la V1 et évolution La dynamique n’est qu’émulée : pré-allocation Toujours beaucoup d’espace inoccupé Longueur de liste limitée à la taille des tableaux Transposons en mémoire l’index devient adresse mémoire On utilise la notion de pointeur Variable contenant une adresse On se dote d’un nouvel opérateur Accès au contenu stocké à une adresse donnée : contenu(s) Notation algorithmique Accès au champ c de la structure stockée à l’adresse s contenu(s).c s’écrit s → c Séquentiel LSC Statique Evolution

Représentation V2 : dynamique Structure maillon comportant deux champs 1. un élément e 2. l’adresse mémoire s du maillon suivant D’où succ(e) = contenu(s) Conséquences Logique de parcours inchangée Pas de réservation mémoire inutile Pas de limite de taille (sauf mémoire physique) Séquentiel LSC Dynamique

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; Séquentiel LSC Dynamique Spécification