46 lines
1.2 KiB
C
46 lines
1.2 KiB
C
/*********************************************/
|
|
/** Implémentation des files par un tableau **/
|
|
/*********************************************/
|
|
|
|
#ifndef DEQUEUE_H_
|
|
#define DEQUEUE_H_
|
|
|
|
#include <stdbool.h>
|
|
|
|
////////////////////////
|
|
// Définition du type //
|
|
////////////////////////
|
|
|
|
typedef struct {
|
|
int *array; // Tableau des valeurs.
|
|
int size_array; // Taille du tableau des valeurs.
|
|
int left; // Indice de la valeur à gauche de la file (si non-vide).
|
|
int right; // Indice qui suit celui de la valeur à droite de la file
|
|
// (si elle est non-vide).
|
|
bool empty; // Booléen indiquant si la file est vide.
|
|
} queue;
|
|
|
|
//////////////////////////
|
|
// Fonctions primitives //
|
|
//////////////////////////
|
|
|
|
// Crée une file vide.
|
|
queue *create_queue(void);
|
|
|
|
// Libère la mémoire allouée pour la file.
|
|
void delete_queue(queue *);
|
|
|
|
// Renvoie le nombre d'éléments dans la file.
|
|
int getsize_queue(const queue *);
|
|
|
|
// Renvoie vrai si la file est vide, faux sinon.
|
|
bool isempty_queue(const queue *);
|
|
|
|
// Ajoute une valeur dans la file, à gauche de la valeur la plus à gauche.
|
|
void enqueue(int, queue *);
|
|
|
|
// Renvoie la valeur la plus à droite de la file et la retire.
|
|
int dequeue(queue *);
|
|
|
|
#endif // DEQUEUE_H_
|