Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "queue.h"
- #include <stdio.h>
- #include <stdlib.h>
- void queue_create(struct queue* container){
- my_assert(container != NULL);
- container->first = NULL;
- container->last = NULL;
- }
- void queue_push (struct queue* container, struct instruction* item){
- my_assert(container != NULL);
- if (item == NULL)
- fprintf(stderr, "Chybny argument!\n");
- else if (container->first == container->last){
- container->first = item;
- container->last = item;
- }
- else {
- container->last->next = item;
- container->last = item;
- }
- }
- struct instruction* queue_pop (struct queue* container){
- my_assert(container != NULL);
- struct instruction *temp = container->first;
- if ((container->first == NULL) && (container->last == NULL)){
- fprintf(stderr, "Fronta je prazdna!\n");
- return NULL;
- }
- else if (container->first == container->last){
- container->first = temp->next;
- container->last = NULL;
- }
- else container->first = temp->next;
- return temp;
- }
- unsigned int queue_empty (const struct queue* container){
- my_assert(container != NULL);
- if ((container->first == NULL) && (container->last == NULL))
- return 1;
- else return 0;
- }
- unsigned int queue_size (const struct queue* container){
- my_assert(container != NULL);
- struct instruction *temp = container->first;
- int count = 0;
- while (temp != NULL){
- temp=temp->next;
- count++;
- }
- return count;
- }
- unsigned int queue_clear (struct queue* container){
- my_assert(container != NULL);
- int count = 0;
- while (container->first != NULL) {
- struct instruction *temp = container->first;
- container->first = container->first->next;
- free(temp);
- count++;
- }
- container->first = NULL;
- container->last = NULL;
- return count;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement