3.3 Les Files d attente (Queues)



Documents pareils
Génie Logiciel avec Ada. 4 février 2013

T. A. D. pile. Chapitre 7 (suite) Listes particulières. T. A. D. file. représentation chaînée de la file algorithmique. Files

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct...

Cours A7 : Temps Réel

Chapitre 5 : Flot maximal dans un graphe

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Initiation. àl algorithmique et à la programmation. en C

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Traduction des Langages : Le Compilateur Micro Java

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin Algorithmique 1

Architecture des Systèmes d Information Architecture des Systèmes d Information

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Structure fonctionnelle d un SGBD

L exclusion mutuelle distribuée

Sommaire. Structure. Liste simplement chaînée ALGORITHME ET STRUCTURES DE DONNÉES II

Définitions. Numéro à préciser. (Durée : )

Programmation Objet - Cours II

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours de Systèmes d Exploitation

Chapitre 4 : Exclusion mutuelle

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Théorie des Langages

Les structures de données. Rajae El Ouazzani

Partie 7 : Gestion de la mémoire

Correction TD Algorithmique 5.3 Pile Liste 5.3 Pile

Cours de Programmation Impérative: Zones de mémoires et pointeurs

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Capacité de mémoire Tablettes

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Chapitre 2. Classes et objets

Quelques Algorithmes simples

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Programmation Orientée Objet Java

Algorithmique, Structures de données et langage C

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2

Guide de la migration EBICS

Architecture des ordinateurs

Algorithmes récursifs

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Guichet automatique de banque

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

PROTOCOLE DE GESTION DU PANNEAU ELECTRONIQUE D'INFORMATION MUNICIPALE

Gestion mémoire et Représentation intermédiaire

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Système de Gestion de Fichiers

Approche Contract First

la fiscalité des valeurs mobilières en 2015

Gestion distribuée (par sockets) de banque en Java

Algorithmique et Programmation

Entraînement au concours ACM-ICPC

Classes et Objets en Ocaml.

Utiliser un logiciel de présentation assistée par ordinateur

Les arbres binaires de recherche

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

UTILISER LA MESSAGERIE

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

SUPPORT DE COURS. Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com

Evaluation et mise en place d un serveur de messages pour Chamilo 2.0

Bases de programmation. Cours 5. Structurer les données

Quelques algorithmes simples dont l analyse n est pas si simple

Analyse du temps de réponse des systèmes temps réel

Information. BASES LITTERAIRES Etre capable de répondre à une question du type «la valeur trouvée respecte t-elle le cahier des charges?

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Windows Internet Name Service (WINS)

Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 17/04/2007

Algorithmique & programmation

Cours de Master Recherche

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

Sélection du contrôleur

Auto-évaluation Programmation en Java

Algorithmique et structures de données I

Sécurité des réseaux IPSec

Création d'un questionnaire (sondage)

Differential Synchronization

Traitement des cartes retenues ou oubliées et de l argent non retiré ou oublié au Bancomat

UE C avancé cours 1: introduction et révisions

Correction TD algorithmique

EXCEL TUTORIEL 2012/2013

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

ÉPREUVE COMMUNE DE TIPE Partie D

REGLEMENT DU MARATHON TOURAINE LOIRE VALLEY 2015

Systemes d'exploitation des ordinateurs

Arbres binaires de recherche

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

TP1 : Initiation à Java et Eclipse

LICENCE : INFORMATIQUE GENERALE

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre Université de Rennes I - IRISA

Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et

Représentation d un entier en base b

PROJET 1 : BASE DE DONNÉES REPARTIES

Programmation Par Contraintes

Transcription:

3.3 Les Files d attente (Queues) 3.3.1 Définition La file d attente est une structure qui permet de stocker des objets dans un ordre donné et de les retirer dans le même ordre, c est à dire selon le protocole FIFO first in first out. On ajoute toujours un élément en queue de liste et on retire celui qui est en tête. 3.3.2 Utilisation des files d attente Les files d attente sont utilisées, en programmation, pour gérer des objets qui sont en attente d un traitement ultérieur, tel que la gestion des documents à imprimer, des programmes à exécuter, des messages reçus,...etc. Elles sont utilisées également dans le parcours des arbres. Exercice Reprendre le parcours de l arbre de la section 3.2.2.2 (parcours en profondeur) en utilisant une file d attente au lieu de la pile. 3.3.3 Opérations sur les files d attente Les opérations habituelles sur les files sont : Initialisation de la file Vérification du contenu de la file (vide ou pleine) Enfilement : ajout d un élément à la queue de la file Défilement : retrait d un élément de la tête de la file 3.3.4 Implémentation des files d attente De même que pour les piles, les files d attente peuvent être représentées en deux manières : par représentation statique en utilisant les tableaux, par représentation dynamique en utilisant les listes linéaires chaînées. 27

3.3.4.1 Implémentation statique L implémentation statique peut être réalisée par décalage en utilisant un tableau avec une tête fixe, toujours à 1, et une queue variable. Elle peut être aussi réalisée par flot utilisant un tableau circulaire où la tête et la queue sont toutes les deux variables. 1. Par décalage La file est vide si Queue =0 La file est pleine si Queue = n Problème de décalage à chaque défilement 2. Par flot : La file est représentée par un tableau circulaire La file est vide si T ête = Queue La file est pleine si (Queue +1)mod n = T ête On sacrifie une case pour distinguer le cas d une file vide de celui d une file pleine. Exercice Pensez à une solution qui évite le sacrifice d une case. 28

3.3.4.2 Implémentation dynamique La représentation dynamique utilise une liste linéaire chaînée.l enfilement se fait à la tête de la liste et de défilement se fait de la queue. La file d attente, dans ce cas, peut devenir vide, mais ne sera jamais pleine. Les deux algorithmes FileParFlot et FileParLLCs, à la fin de cette section, présentent des exemples d implémentation statique te dynamique respectivement. 3.3.5 File d attente particulière (File d attente avec priorité) Une file d attente avec priorité est une collection d éléments dans laquelle l insertion ne se fait pas toujours à la queue. Tout nouvel élément est inséré,dans la file, selon sa priorité. Le retrait se fait toujours du début. Dans une file avec priorité, un élément prioritaire prendra la tête de la file même s il arrive le dernier. Un élément est toujours accompagné d une information indiquant sa priorité dans la file. L implémentation de ces files d attente peut être par tableau ou listes, mais l implémentation la plus efficace et la plus utilisée utilise des arbres particuliers qui s appellent les tas. 29

Algorithme FileParFlot; Var File : Tableau[1..n] de entier ; Tête,Queue : Entier ; Procédure InitFile(); T ête 1 ; Queue 1 ; Fonction FileVide() : Booleen; F ilev ide (T ête = Queue) ; Fonction FilePleine() : Booleen; F ilep leine (((Queue +1)mod n) =T ête) ; Procédure Enfiler( x : entier); Si (FilePleine) Alors Ecrire( Impossible d enfiler, la file est pleine!! ) File[Queue] x ; Queue (Queue +1)mod n ; Procédure Défiler( x : entier); Si (FileVide) Alors Ecrire( Impossible de défiler, la file est vide!! ) x File[T ete] ; T ête (T ête +1)mod n ;... Utilisation de la File... Fin. 30

Algorithme FileParLLCs; Type TMaillon = Structure Fin ; Valeur : Typeqq ; Suivant : Pointeur(TMaillon) ; Var P, Tête, Queue : Pointeur(TMaillon) ; Procédure InitFile(); T ête Nil; Queue Nil; Fonction FileVide() : Booleen; F ilev ide (T ête = Nil) ; Procédure Enfiler( x : entier); Allouer(P) ; Aff_Val(P,x) ; Aff_adr(P,Nil) ; Si (Queue = Nil) Alors T ête P ; Aff_Adr(Queue,P) ; Queue P ; Procédure Défiler( x : entier); Si (FileVide) Alors Ecrire( Impossible de défiler, la file est vide!! ) x V aleur(t ete) ; P T ête ; T ête Suivant(T ête) ; m Libérer(P) ;... Utilisation de la File... Fin. 31