Paszta

Kolejka

May 11th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.94 KB | None | 0 0
  1. #include <iostream>
  2. #include <time.h>
  3. #include <stdio.h>
  4.  
  5. using namespace std;
  6.  
  7. struct element {
  8. int data;
  9. element* next;
  10. };
  11. struct kolejka {
  12. element* head;
  13. element* tail;
  14. };
  15.  
  16. kolejka create_queue ();
  17. void enqueue (kolejka &q, int n_d);
  18. void dequeue (kolejka &q);
  19. void show_first_el(kolejka &q);
  20. void show_dequeue(kolejka &q);
  21.  
  22. int main()
  23. {
  24.     kolejka q = create_queue();
  25.     int wybor;
  26.     srand(time(NULL));
  27.     do{
  28. cout << "Podaj wybor:" << endl;
  29. cout << "1. Stworzenie nowej kolejki" << endl;
  30. cout << "2. Dodac losowy element do kolejki" << endl;
  31. cout << "3. Usunac element z kolejki" << endl;
  32. cout << "4. Wyswietlic pierwszy element kolejki" << endl;
  33. cout << "5. wyswietlic cala kolejke razem z usunieciem" << endl;
  34. cout << "6. Wyjscie" << endl;
  35. cout << "Odpowiedz:" << endl;
  36. cin >> wybor;
  37. switch(wybor){
  38. case 1: cout << "Kolejka jest stworzona juz na poczatku, wybierz cos innego" << endl ; break;
  39. case 2: enqueue (q, rand()); break;
  40. case 3: dequeue (q); break;
  41. case 4: show_first_el(q); break;
  42. case 5: show_dequeue(q); break;
  43. case 6:  cout << "Wyszedles z programu" << endl; break;
  44. default : cout << "bledny wybor" << endl; break;
  45.  
  46.  
  47. }
  48.     } while (wybor != 6);
  49.     return 0;
  50. }
  51.  
  52. kolejka create_queue (){
  53. kolejka new_queue;
  54. new_queue.head = nullptr;
  55. new_queue.tail = nullptr;
  56. return new_queue;}
  57.  
  58. void enqueue (kolejka &q, int r_d){
  59.     cout << r_d << endl;
  60. element* n_e = new element;
  61. n_e -> data = r_d;
  62. n_e -> next = nullptr;
  63.  
  64. if(q.tail != nullptr)
  65.     q.tail -> next = n_e;
  66.     q.tail=n_e;
  67.  
  68. if(q.head == nullptr)
  69.     q.head = n_e;
  70. }
  71.  
  72. void dequeue (kolejka &q){
  73. if (q.head == nullptr) return;
  74. element* temp = q.head;
  75. q.head = q.head -> next;
  76. delete temp;
  77.  
  78. if(q.head == nullptr)
  79.     q.tail == nullptr;
  80. }
  81.  
  82. void show_first_el(kolejka &q){
  83. cout << (*q.head).data << endl;
  84. }
  85.  
  86.  void show_dequeue(kolejka &q){
  87.  while (q.head != nullptr)
  88.  {
  89.      cout << q.head -> data << endl;
  90.      dequeue(q);}
  91.  }
Add Comment
Please, Sign In to add comment