Advertisement
peterzig

[AISD] Kolejka

Sep 19th, 2016
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.34 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <conio.h>
  4.  
  5. struct Kolejka
  6. {
  7.     float data;
  8.     Kolejka *next;
  9. };
  10.  
  11. void Dodaj(Kolejka **q, float wartosc)
  12. {
  13.     Kolejka *nq = (Kolejka*)malloc(sizeof(Kolejka));
  14.  
  15.     if (nq->next != NULL)
  16.     {
  17.         nq->data = wartosc;
  18.         nq->next = 0;
  19.  
  20.         if (*q != NULL)
  21.         {
  22.             Kolejka *p = *q;
  23.             while (p->next != 0) p = p->next;
  24.             p->next = nq;
  25.         }
  26.         else
  27.         {
  28.             *q = nq;
  29.         }
  30.     }
  31. }
  32.  
  33. int Rozmiar(Kolejka *q)
  34. {
  35.     if (q != NULL)
  36.     {
  37.         int rozmiar = 0;
  38.         Kolejka *p = q;
  39.         while (p != 0)
  40.         {
  41.             p = p->next;
  42.             ++rozmiar;
  43.         }
  44.         return rozmiar;
  45.     }
  46.     return 0;
  47. }
  48.  
  49. double Usun(Kolejka **q)
  50. {
  51.     if (*q)
  52.     {
  53.         Kolejka *nq = *q;
  54.         *q = (*q)->next;
  55.         double v = nq->data;
  56.         return v;
  57.     }
  58. }
  59.  
  60. bool Pusta(Kolejka *q)
  61. {
  62.     if (q == NULL)
  63.         return true;
  64.     else
  65.         return false;
  66. }
  67.  
  68. float Pobierz(Kolejka ** q)
  69. {
  70.     if (q != 0)
  71.     {
  72.         Kolejka *op = *q;
  73.         *q = (*q)->next;
  74.  
  75.         float wartosc = op->data;
  76.         free(op);
  77.         return wartosc;
  78.     }
  79.     return 0;
  80. }
  81.  
  82. int main()
  83. {
  84.     Kolejka *q = 0;
  85.     printf("Elementy kolejki: ");
  86.         for(int i = 0; i < 10; i++)
  87.         {
  88.             Dodaj(&q, 1.1*(i + 1));
  89.             printf("\n%.2f", 1.1*(i + 1));
  90.         }
  91.         printf("\nDlugosc kolejki: %d", Rozmiar(q));
  92.     while (q) {
  93.         printf("\nUsuwam element...");
  94.         Usun(&q);
  95.         printf("\nDlugosc kolejki: %d", Rozmiar(q));
  96.     }
  97.     _getch();
  98.     return 0;
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement