Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include "queue.h"
  3. #include "../LinkedList/linked_list.h"
  4.  
  5. struct Queue {
  6. pLinkedList buffer;
  7. };
  8.  
  9. pQueue makeQueue() {
  10. pQueue newQueue = malloc(sizeof(Queue));
  11.  
  12. newQueue->buffer = makeList();
  13.  
  14. return newQueue;
  15. }
  16.  
  17. size_t push(pQueue queue, T data) {
  18. if (queue == NULL) return 0; // FAILED, returns 0.
  19.  
  20. appendToList(queue->buffer, data);
  21.  
  22. return queue->buffer->size;
  23. }
  24.  
  25. T* pop(pQueue queue) {
  26. if (queue == NULL) return NULL; // No Queue
  27.  
  28. pNode front = removeFront(queue->buffer);
  29.  
  30. if (front == NULL) return NULL; // Nothing in the queue
  31.  
  32. return front->data;
  33. }
  34.  
  35. size_t queueSize(pQueue queue) {
  36. return queue->buffer->size;
  37. }
  38.  
  39. void destroyQueue(pQueue* pPqueue) {
  40. if (pPqueue == NULL) return; // Nothing here.
  41.  
  42. pQueue queue = *pPqueue;
  43.  
  44. destroyList(&queue->buffer);
  45. queue->buffer = NULL;
  46.  
  47. free(queue);
  48. *pPqueue = NULL;
  49. pPqueue = NULL;
  50. queue = NULL;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement