Le but de cet exercice est de simuler la gestion de lettres d'un bureau de poste à l'aide de priority queues. Au cours de la journée, le bureau de poste reçoit des lettres qui sont stockées sous forme d'une file (FIFO).
Ces lettres peuvent être envoyé dans 5 continents différents et peuvent avoir un timbre prioritaire qui leur permet d'être envoyées avant les lettres non prioritaires. Il faut donc vider la file en respectant l'ordre d'arrivée et les placer dans la file du continent dans lequel elles doivents être envoyées tout en respectant la priorité donnée par le timbre.
Il y a donc 3 fonctions à écrire:
- dequeue
- priority_enqueue
- process_letters
Ces fonctions utilisent les 2 structures suivantes:
/* * Continent: 0 if Europe * 1 if America * 2 if Asia * 3 if Oceania * 4 if Africa * * Priority: 0 if no priority stamp * 1 if priority stamp */ typedef struct letter { int continent; int priority; char name; struct letter* next; //from the front of the queue to the back of the queue } letter_t; typedef struct queue { letter_t* front; letter_t* rear; int size; } queue_t;