Advertisement
Konomrd123

Untitled

Apr 15th, 2015
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.88 KB | None | 0 0
  1. #include "queue.h"
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. void queue_create(struct queue* container){
  5.     my_assert(container != NULL);
  6.     container->first = NULL;
  7.     container->last = NULL;
  8. }
  9. void queue_push (struct queue* container, struct instruction* item){
  10.     my_assert(container != NULL);
  11.     if (item == NULL)
  12.         fprintf(stderr, "Chybny argument!\n");
  13.     else if (container->first == container->last){
  14.         container->first = item;
  15.         container->last = item;
  16.     }
  17.     else {
  18.         container->last->next = item;
  19.         container->last = item;
  20.     }
  21. }
  22. struct instruction* queue_pop (struct queue* container){
  23.     my_assert(container != NULL);
  24.     struct instruction *temp = container->first;
  25.     if ((container->first == NULL) && (container->last == NULL)){
  26.         fprintf(stderr, "Fronta je prazdna!\n");
  27.         return NULL;
  28.     }
  29.     else if (container->first == container->last){
  30.         container->first = temp->next;
  31.         container->last = NULL;
  32.     }
  33.     else container->first = temp->next;
  34.     return temp;
  35. }
  36. unsigned int queue_empty (const struct queue* container){
  37.     my_assert(container != NULL);
  38.     if ((container->first == NULL) && (container->last == NULL))
  39.         return 1;
  40.     else return 0;
  41. }
  42. unsigned int queue_size (const struct queue* container){
  43.     my_assert(container != NULL);
  44.     struct instruction *temp = container->first;
  45.     int count = 0;
  46.     while (temp != NULL){
  47.         temp=temp->next;
  48.         count++;
  49.     }
  50.     return count;
  51. }
  52. unsigned int queue_clear (struct queue* container){
  53.     my_assert(container != NULL);
  54.     int count = 0;
  55.     while (container->first != NULL) {
  56.         struct instruction *temp = container->first;
  57.         container->first = container->first->next;
  58.         free(temp);
  59.         count++;
  60.     }
  61.     container->first = NULL;
  62.     container->last = NULL;
  63.     return count;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement