Piles Premier arrivé, dernier servi: LIFO (Last In, First Out) Liste à usage restreint: Enlève et insère un élément seulement à un bout de la liste. Notation:

Slides:



Advertisements
Présentations similaires
Cours n° 7 Standard Template Library II.
Advertisements

Structures de données et complexité
Structures de données et complexité LIFO – FILO – FIFO – etc…
Cours n° 8 Conception et Programmation à Objets
1 Tableaux des objets C++ si on connaît le nombre dobjets nécessaires davance on peut utiliser des tableau dobjets dans les fonctions dusage class Personne.
Liste générique dans Linux 2.6 Source : Understanding the Linux kernel Chap3 processes p.87.
Algorithme et structure de données
JAV - TD 6 Structures de données JAVA
Cours d'algorithmique 2 - Intranet 1 8 novembre 2006 Cours dAlgorithmique Listes, piles et files. Arbres. Types de données abstraits. Implantations.
Chapitre IV Object, interfaces, classes imbriquées.
Tris: Introduction IFT 1025: Programmation 2 Jian-Yun Nie.
BlueJ_XI 1 Java, les objets : tout de suite ! Gestion des erreurs : les exceptions Notes de cours associées au chapitre 11 tutorial BlueJ
Classes locales classes définies à l'intérieur d'un bloc de code,
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.
Structures de données et algorithmes – C5 Maria-Iuliana Dascalu, PhD
POO-L3 H. Fauconnier1 Chapitre IV 1. classe Object, clonage 2. interfaces 3. classes internes et imbriquées.
Les piles Djamal Rebaïne.
II. Chaînage, SDD séquentielles
Leçon 6 : Structures de données dynamiques IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier.
Master 1 SIGLIS java Lecteur Stéphane Tallard Chapitre 4 – Structures de contrôle.
Structures de données IFT-2000
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
IFT-10541A : Hiver 2003 Semaine 5 : Piles et files.
Structures de données IFT-2000
Structures de données IFT-2000 Abder Alikacem La librairie STL du C++ Département dinformatique et de génie logiciel Édition Septembre 2009.
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.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 7 : Classes et fonctions paramétrables Département.
Présentation Structures de Données et TDA
Les arbres binaires.
Les Graphes. Graphes Un graphe G = (V, E) consiste en un ensemble V de noeud, et un ensemble E darêtes, tels que chaque arête dans E relie une paire de.
Arbres binaires complets
Types de données abstrait et mécanismes d'encapsulation
Cours du 22 novembre généricité. Chapitre VII Généricité.
Cours 11 Threads. Chapitre X threads threadPOO-L3 H. Fauconnier3 Threads threads: plusieurs activités qui coexistent et partagent des données exemples:
Java, les objets : tout de suite ! Rassembler, grouper les objets
BlueJ_VI 1 Java, les objets : tout de suite ! Test, assertions, « vérification statique » Notes de cours associées au chapitre 6 Avec des assertions, utilisation.
IFT-2000: Structures de données Piles et files Dominic Genest, 2009.
Structures de données IFT-2000
Structures de données IFT-10541
Structures de données IFT-2000 Abder Alikacem Semaine 11 Gestion des arbres binaires de tri et de recherche. Les arbres cousus. Les arbres n-aires Département.
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.
Structures de données IFT-2000
23/03/05SE Info2 - S. L'haire UNIGE1 TP 7 PROCEDURE Inserer(VAR a, crt : AgendaPtr; j, h : INTEGER; IN s : Chaine); VAR nouveau, temp : AgendaPtr; BEGIN.
27/02/2006L3 MIAGE - GLO ADA1 Les Paquetages Permettent d’encapsuler un groupe d’entités logiquement reliées. Comme toute unité de programme, le paquetage.
Ch. PAUL - Piles et Files à l'aide de listes chainées
LES PILES ET FILES.
Types Abstraits.
Templates, Containers et STL Structures de données de base tableau, liste chaînée file, pile, arbres, hashtable collection, ensemble 2 caractéristiques.
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 –
Un peu de Design Pattern Quelques modèles pour développer vite et bien.
Structures de données élémentaires
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.
LIFI-Java 2004 Séance du Mercredi 29 sept. Cours 4.
Dictionnaire On veut une structure permettant d’insérer, d’enlever et de rechercher des enregistrements. Concepts importants: Clef de recherche: Décrit.
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)
CSI1502: Principes fondamentaux de conception de logiciels Chapitre 12: Structures de données.
8INF259 STRUCTURE DE DONNEES LISTE, PILES, FILES LANDRY D. CHAPWOUO T., UQAC/DIM mardi 4 octobre 2016LANDRY CHAPWOUO.
I21 Algorithmique et programmation II
Présentation Structure données abstraite (TDA) Rappel : File
Piles.
Chapter 12: Structures de données
Les structures de base Listes chainées. Listes Les listes(similaire aux tableaux) sont des structures informatiques qui permettent de garder en mémoire.
Piles et files.
Les arbres généraux.
LISTES.
Listes Chaînées.
Transcription de la présentation:

Piles Premier arrivé, dernier servi: LIFO (Last In, First Out) Liste à usage restreint: Enlève et insère un élément seulement à un bout de la liste. Notation: Insérer: EMPILER (PUSH) Enlever: DÉPILER (POP) Lélément accessible est: DESSUS (TOP)

Pile: TDA // Pile: Type de donné abstrait template Stack { public: virtual void clear() = 0; virtual bool push(const Elem&) = 0; virtual bool pop(Elem&) = 0; virtual bool topValue(Elem&) const = 0; virtual int length() const = 0; }

Pile avec tableau // Implémentation avec tableau template class Astack: public Stack { private: int size; int top; Elem *listArray; public: AStack(int sz =1000){ size = sz; top = 0; listArray = new Elem[sz]; } ~AStack() { delete [] listArray; } void clear() { top = 0; }

Pile avec tableau(2) bool push(const Elem& item) { if (top == size) return false; else { listArray[top++] = item; return true; } } bool pop(Elem& it) { if (top == 0) return false; else {it = listArray[--top]; return true;} } bool topValue(Elem& it) const { if (top == 0) return false; else {it = listArray[top-1]; return true;} } int length() const { return top; } }

Pile avec liste chaînée (1) template class LStack: public Stack { private: Link * top; int size; public: LStack(int sz =DefaultListSize) { top = NULL; size = 0; } bool push(const Elem& item) { top = new Link (item, top); size++; return true; }

Pile avec liste chaînée(2) bool pop(Elem& it) { if (size == 0) return false; it = top->element; Link * ltemp = top->next; delete top; top = ltemp; size--; return true; } bool topValue(Elem& it) const { if (size == 0) return false; it = top->element; return true; }

File dattente (queue) Premier arrivé, premier servi: FIFO (First in, First Out) Liste à usage restreint: Enlève à un bout et ajoute à lautre. Notation: Insérer (Enqueue) Enlever (Dequeue) Premier élément: Avant Dernier élément: Arrière

Queue: Implémentation (1)

Queue: Implémentation (2)

Queue: TDA // Queue: type de donné abstrait template class Queue { public: virtual void clear() = 0; virtual bool enqueue(const Elem&) = 0; virtual bool dequeue(Elem&) = 0; virtual bool frontValue(Elem&) const = 0; virtual int length() const = 0; };

Queue: Tableau // Queue: Implémentation avec tableau template class AQueue: public Queue { private: int size; int front; int rear; Elem *listArray; public: AQueue(int sz =DefaultListSize) { size = sz+1; rear = 0; front = 1; listArray = new Elem[size]; } ~AQueue() { delete [] listArray; } void clear() { front = rear; }

Queue: Tableau bool enqueue(const Elem& it) { if (length()==size-1) return false; rear = (rear+1) % size; listArray[rear] = it; return true; } bool dequeue(Elem& it) { if (length() == 0) return false; // Empty it = listArray[front]; front = (front+1) % size; return true; }

Queue: Tableau bool frontValue(Elem& it) const { if (length() == 0) return false; it = listArray[front]; return true; } virtual int length() const { return ((rear+size) - front + 1) % size; } };