Advertisement
lukicdarkoo

Red (queue)

Jan 17th, 2014
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.49 KB | None | 0 0
  1. /* NAPOMENA:
  2. Program je napravljen samo na osnovu onoga sto sam procitao u skripti, ne mora znaciti da je tacan.
  3. I nisam napisao sve funkcije, mrsko mi :)
  4. */
  5.  
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8.  
  9. #define QUEUE_NULL -1
  10.  
  11. typedef int queueType;
  12.  
  13. typedef struct queueNodeStruct {
  14.     struct queueNodeStruct *next;
  15.     queueType data;
  16. } queueNode;
  17.  
  18. void push(queueNode **top, queueType data) {
  19.     queueNode *current;
  20.     queueNode *next;
  21.     queueNode *newNode;
  22.  
  23.     newNode = (queueNode *)malloc(sizeof(queueNode));
  24.     newNode->data = data;
  25.     newNode->next = NULL;
  26.  
  27.     if (*top == NULL) {
  28.         *top = newNode;
  29.         return;
  30.     }
  31.  
  32.     current = next = *top;
  33.  
  34.     while (next->next != NULL) {
  35.         current = next;
  36.         next = current->next;
  37.     }
  38.  
  39.     next->next = newNode;
  40. }
  41.  
  42. queueType pop(queueNode **top) {
  43.     queueType tmpData;
  44.     queueNode *current;
  45.  
  46.     if (*top == NULL)
  47.         return QUEUE_NULL;
  48.  
  49.     current = *top;
  50.     tmpData = current->data;
  51.     *top = current->next;
  52.     free(current);
  53.  
  54.     return tmpData;
  55. }
  56.  
  57. queueType front(queueNode **top) {
  58.     queueNode *current;
  59.  
  60.     if (*top == NULL)
  61.         return QUEUE_NULL;
  62.  
  63.     current = *top;
  64.  
  65.     return current->data;
  66. }
  67.  
  68.  
  69. int main() {
  70.     queueNode *top;
  71.     top = NULL;
  72.  
  73.     push(&top, 1);
  74.     push(&top, 2);
  75.     push(&top, 3);
  76.  
  77.     printf("%i", pop(&top));
  78.     printf("%i", front(&top));
  79.     printf("%i", pop(&top));
  80.     printf("%i", pop(&top));
  81.  
  82.  
  83.     return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement