Structures de données élémentaires

Slides:



Advertisements
Présentations similaires
GEF 243B Programmation informatique appliquée Listes chaînées I – Tableaux de structures §15.1 – 15.2.
Advertisements

Cours de C – Séance dexercices 12 Octobre Exercice 5 Idem quexercice 1 : lire une ligne au clavier Sans limitation de la longueur de la ligne (utilisez.
Rappels C.
Cours n° 7 Standard Template Library II.
Au programme du jour …. Un peu plus de structures de données
GEF 243B Programmation informatique appliquée Listes chaînées II §15.1 – 15.2.
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée
1 UMLV 1. Introduction 2. Hachage ouvert 3. Hachage fermé 4. Implémentation des fonctions Méthodes de hachage.
La programmation générique avec la STL EIUMLV - Informatique et Réseaux 99 Benoît ROMAND.
Cours d’Algorithmique
Algorithme et structure de données
Chap. 1 Structures séquentielles : listes linéaires
FLSI602 Génie Informatique et Réseaux
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
ALGORITHMES RECURSIFS
UE NFA006 STRUCTURES DE DONNEES
Structures de données linéaires
IPA – Catherine Faron Zucke et Anne Marie Deryr. suite ordonnée d'éléments de taille variable ArrayList liste; liste = new ArrayList (); Ne peuvent contenir.
Cours d’Algorithmique
Structures de données et algorithmes – C5 Maria-Iuliana Dascalu, PhD
Leçon 6 : Structures de données dynamiques IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier.
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que lon veut allouer. Le premier exemple: #include void main()
II. Chaînage, SDD séquentielles
TRAITEMENT DE STRUCTURES
IFT-2000: Structures de Données Listes chaînées Dominic Genest, 2009.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
IFT-2000: Structures de données
Structures de données IFT-2000
Présentation Structures de Données et TDA
Les enregistrements (struct) suite. Struct Rappel Enregistrement : Suite de données pouvant être de types différents, accessibles via une seule variable.
Les listes chaînées par Frédérick Henri.
Points importants de la semaine Les allocations programmées de mémoire. Les enregistrements.
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.

IFT-2000: Structures de données Piles et files Dominic Genest, 2009.
Structures de données IFT-2000
Structures de données IFT-10541
LES ARBRES Un arbre est une structure homogène dont chaque élément,
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.
Plan cours La notion de pointeur et d’adresse mémoire.
L’essentiel du langage C
Structures des données
Le langage C Structures de données
2.1 - Historique Chapitre 2 : Introduction au langage C++
Ch. PAUL - Piles et Files à l'aide de listes chainées
LES PILES ET FILES.
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
et quelques rappels sur certains éléments du langage C
Les adresses des fonctions
Autres éléments du langage
Un survol du language C.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
La fonction alloue un bloc de taille size. Il faut indiquer la taille du bloc que l’on veut allouer. Le premier exemple: #include void main()
Structures de données élémentaires dans le contexte du TP #1
II. Chaînage, SDD séquentielles
ETNA – 1ème année Guillaume Belmas –
TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
Liste Une liste est une séquence d’éléments. Concept important: Chaque élément possède une position dans la liste. Notation: De quelles opérations a-t-on.
PRO-1027 Programmation Scientifique en C
Chaînage et LSC : motivation et principe Manipuler la LSC : exemples Variantes : LDC, liste circulaire, … Etude de cas : réalisation d’un buffer clavier.
Types abstraits de données (TAD)
3ième Classe (Mardi, 23 Septembre) CSI2572. O jourd'8: E Allocation de mémoire E Déallocation de mémoire E Tableaux (n dimensions) E Arithmetique des.
CSI2510 Structures des Données et Algorithmes
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
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.
Informatique 1A Langage C 6 ème séance 1. Objectifs de la séance 6  Allocation dynamique de mémoire  Application à la création de tableaux 2.
Les structures de base Listes chainées. Listes Les listes(similaire aux tableaux) sont des structures informatiques qui permettent de garder en mémoire.
Transcription de la présentation:

Structures de données élémentaires

Structures élémentaires Liste Matrice Pile File Liste chaînée Liste doublement chaînée Liste chaînée circulaire Liste doublement chaînée circulaire

Liste (Array) Contient un nombre prédéfini d’espaces pouvant contenir chacun un élément. On identifie les espaces à l’aide d’un indice. 1 2 3 4 5

Matrice (Matrix) Contient un nombre prédéfini d’espaces pouvant contenir chacun un élément. À la différence de la liste à un seul indice, on parle ici de tableau à 2 indices. (1,1) (1,2) (1,3) (2,1) (2,2) (2,3) (3,1) (3,2) (3,3)

Pile (Stack) La pile est un espace où on peut accumuler des éléments. On ne peut retirer que le plus jeune des éléments ajouté. Les tours d’Hanoï. 4 3 2 1

File (Queue) La file est un espace où on peut accumuler des éléments. On ne peut retirer que le plus vieux des éléments ajouté Distributeur de boissons gazeuses. 6 5 4 3 2 1

Liste chaînée (Linked List) La liste chaînée permet d’insérer un élément dans une liste ordonnée d’éléments. L’ajout peut se faire n’importe où. On peut retirer n’importe lequel des élément de la liste à tout moment.

Liste chaînée (suite) Exemple de liste chaînée Tête Queue 1 2 3

Liste chaînée (suite) Ajout à une liste chaînée Tête Queue 1 2 3 1b

Liste chaînée (suite) Exemple de liste chaînée Tête Queue 1 2 3

Liste chaînée (suite) Suppression dans une liste chaînée Tête Queue 1 2 3

Liste chaînée en code struct infovente{ int nosequentiel; /* Champs */ }; struct record{ struct infovente vente; struct record *suivant;

Liste chaînée en code struct record* head; struct record* queue; void init(){ head = NULL; queue = NULL; addItem(/* Champs */); }

Liste chaînée en code struct record * findItem(const int no){ if (head==queue) return NULL; struct record * ptr = head; while (ptr->suivant!=NULL){ ptr=ptr->suivant; if (ptr->vente.nosequentiel==no) return ptr; } return NULL;

Liste chaînée en code struct record * findPrev(const int no){ if (head==queue) return NULL; struct record * ptr = head; while (ptr->suivant!=NULL){ if (ptr->suivant->vente.nosequentiel==no) return ptr; ptr=ptr->suivant; } return NULL;

Liste chaînée en code void addItem(/* Champs */){ struct record* ni = (struct record*)malloc(sizeof(struct record)); ni->vente.nosequentiel = ((queue==NULL)?0:queue->vente.nosequentiel+1); /* Affectation des champs */ ni->suivant = NULL; if (queue != NULL) queue->suivant = ni; queue = ni; if (head==NULL) head = ni; }

Liste chaînée en code void removeItem(const int no){ if ((no<1)||(head==queue)) return; struct record * ptr = findPrev(no); if (ptr!=NULL){ struct record * tptr = ptr->suivant; if (queue==ptr->suivant) queue=ptr; ptr->suivant = ptr->suivant->suivant; free(tptr); }

Liste chaînée circulaire (Circularly Linked List) Exemple de liste chaînée circulaire Tête Queue 1 2 3

Liste doublement chaînée (Doubly Linked List) Exemple de liste doublement chaînée Tête Queue 1 2 3

Liste doublement chaînée circulaire (Circularly Doubly Linked List) Exemple de liste doublement chaînée circulaire Tête Queue 1 2 3