libin103 1.4
Bibliothèque de structures de données en C
Chargement...
Recherche...
Aucune correspondance
Définitions de type | Fonctions
Référence du fichier generic_stack.h

File (FIFO) générique contenant des valeurs de type void* Plus de détails...

#include <stdlib.h>
#include "generic_list.h"

Aller au code source de ce fichier.

Définitions de type

typedef generic_list_t generic_stack_t
 Type de données pour représenter une pile générique contenant des valeurs de type void*
 

Fonctions

void generic_stack_init (generic_stack_t *stack, int(*compare)(const void *key1, const void *key2), void *(*build)(const void *data), void(*destroy)(void *data))
 Initialisation d'une nouvelle pile contenant des valeurs de type void*
 
void generic_stack_destroy (generic_stack_t *stack)
 Destruction d'une pile.
 
int generic_stack_push (generic_stack_t *stack, const void *data)
 Ajouter un élément de type void* sur la pile.
 
int generic_stack_pop (generic_stack_t *stack, void **data)
 Supprime un élément de type void* du haut de la pile.
 
void * generic_stack_peek (generic_stack_t *stack)
 Récupère la valeur de type void* du haut de la pile.
 
int generic_stack_size (generic_stack_t *stack)
 Accesseur sur la taille d'une pile.
 

Description détaillée

File (FIFO) générique contenant des valeurs de type void*

Documentation des définitions de type

◆ generic_stack_t

Type de données pour représenter une pile générique contenant des valeurs de type void*

Une pile est une liste chaînée gérée de manière adéquate: insertion en tête et suppression en tête.

Documentation des fonctions

◆ generic_stack_destroy()

void generic_stack_destroy ( generic_stack_t * stack)

Destruction d'une pile.

Utilise la fonction de destruction des listes chaînées pour parcourir la liste et détruire tous les éléments de la pile.

Paramètres
stackest un pointeur vers la structure de données des piles generic_stack_t

◆ generic_stack_init()

void generic_stack_init ( generic_stack_t * stack,
int(*)(const void *key1, const void *key2) compare,
void *(*)(const void *data) build,
void(*)(void *data) destroy )

Initialisation d'une nouvelle pile contenant des valeurs de type void*

Utilise la fonction d'initalisation des listes chaînée pour mettre à zéro la taille et à NULL les pointeurs vers le premier et le dernier élément de la liste, i.e., de la pile. Cette fonction nécessite une fonction de comparaison des éléments de la pile, une fonction de construction d'un élément de la pile et une fonction de destruction des éléments de la pile.

Paramètres
queueest un pointeur vers la structure de données des piles generic_queue_t
comparefonction permettant la comparaison de deux éléments de la pile
buildfonction permettant la construction d'une valeur de la pile
destroyfonction permettant la destruction d'une valeur de la pile

◆ generic_stack_peek()

void * generic_stack_peek ( generic_stack_t * stack)

Récupère la valeur de type void* du haut de la pile.

Etant donné un pointeur vers une pile (représentée par une liste chaînée), récupère la valeur de l'élément au dessus de la pile sans le supprimer.

Paramètres
stackest un pointeur vers la structure de données generic_stack_t
Renvoie
une valeur de void* de l'élément en haut de la pile.

◆ generic_stack_pop()

int generic_stack_pop ( generic_stack_t * stack,
void ** data )

Supprime un élément de type void* du haut de la pile.

Etant donné un pointeur vers une pile (représentée par une liste chaînée), supprime l'élément en haut de la pile (le dernier à avoir été inséré)

Paramètres
stackest un pointeur vers la structure de données generic_stack_t

@pram data un pointeur sur type void* qui permet de récupérer la valeur de l'élément supprimer de la pile

Renvoie
un entier indiquant si tout s'est bien passé (0 pour OK, et -1 en cas de problème mémoire)

◆ generic_stack_push()

int generic_stack_push ( generic_stack_t * stack,
const void * data )

Ajouter un élément de type void* sur la pile.

Etant donné un pointeur vers une pile (représentée par une liste chaînée) et une valeur de type void*, ajoute un nouvel élément à la pile (en "haut" de la pile) avec cette valeur

Paramètres
stackest un pointeur vers la structure de données generic_stack_t

@pram data une valeur de type void* à ajouter à la pile

Renvoie
un entier indiquant si tout s'est bien passé (0 pour OK, et -1 en cas de problème mémoire)

◆ generic_stack_size()

int generic_stack_size ( generic_stack_t * stack)

Accesseur sur la taille d'une pile.

Etant donné un pointeur vers une pile (représentée par une liste chaînée), retourne la valeur du champ size

Paramètres
stackest un pointeur vers la structure de données generic_stack_t
Renvoie
un entier indiquant la taille de la pile