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…
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 »
Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE
II. Chaînage, SDD séquentielles
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
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
Principes de programmation (suite)
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.
II. Chaînage, SDD séquentielles
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)
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

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

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

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

Etat initial de la liste B D 1 A 2 D 3 B 4 5 \0 1 3 2 5 4 \0

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

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

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)

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;