#include "queue.h" #include void queue_init(struct queue *q) { q->first = NULL; q->last = NULL; } void queue_push(struct queue *q, char *word) { struct word_item *tmp = malloc(sizeof(struct word_item)); tmp->word = word; tmp->next = NULL; if(!q->first) { q->first = tmp; q->last = q->first; } else { q->last->next = tmp; q->last = q->last->next; } } void queue_clear(struct queue *q) { struct word_item *tmp; while(q->first) { tmp = q->first; q->first = q->first->next; free(tmp->word); free(tmp); } q->last = NULL; } void queue_processing(const struct queue *q, void (*callback)(char*)) { struct word_item *tmp; tmp = q->first; while(tmp) { callback(tmp->word); tmp = tmp->next; } }