Facebook
From Mazur Głazur, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 194
  1. #include <iostream>
  2. #include <time.h>
  3. #include <cstdlib>
  4.  
  5. struct element {
  6.     int data;
  7.     element* next;
  8. };
  9.  
  10. struct queue {
  11.     element* head;
  12.     element* tail;
  13. };
  14.  
  15. using namespace std;
  16.  
  17. int generowanie();
  18. queue* makeQueue();
  19. void enqueue(queue*q);
  20. void dequeue(queue*q);
  21. void dequeueAll(queue*&q);
  22. void showFirst(queue* q);
  23. void showAll(queue* q);
  24.  
  25. int main()
  26. {
  27.     int x;
  28.     bool br=true;
  29.     queue* kolejka=NULL;
  30.     do{
  31.  
  32.         cout<<"---------Menu---------"<<endl;
  33.         cout<<"1.Tworzenie kolejki"<<endl;
  34.         cout<<"2.Dodanie losowego el.do kolejki"<<endl;
  35.         cout<<"3.Usuniecie el. z kolejki"<<endl;
  36.         cout<<"4.Wyswietlanie pierwszego el. z kolejki"<<endl;
  37.         cout<<"5.Wyswietlanie calej bierzacej kolejki"<<endl;
  38.         cout<<"6.Usuniecie calej kolejki. Na smierc."<<endl;
  39.         cout<<"7.Wyjscie"<<endl;
  40.         cout<<"Wybor: ";
  41.         cin>>x;
  42.         system("cls");
  43.  
  44.         switch(x){
  45.     case 1:
  46.         if(kolejka!=NULL) delete kolejka;
  47.         kolejka= makeQueue();
  48.         cout<<"Kolejka zostala utworzona pomyslnie"<<endl;
  49.         break;
  50.     case 2:
  51.         if(kolejka!=NULL) enqueue(kolejka);
  52.         else cout<<"Kolejka nie zostala utworzona"<<endl;
  53.         break;
  54.     case 3:
  55.         if(kolejka!=NULL) dequeue(kolejka);
  56.         else cout<<"Kolejka nie zostala utworzona"<<endl;
  57.         break;
  58.     case 4:
  59.         if(kolejka!=NULL) showFirst(kolejka);
  60.         else cout<<"Kolejka nie zostala utworzona"<<endl;
  61.         break;
  62.     case 5:
  63.         if(kolejka!=NULL) showAll(kolejka);
  64.         else cout<<"Kolejka nie zostala utworzona"<<endl;
  65.         break;
  66.     case 6:
  67.         if(kolejka!=NULL) dequeueAll(kolejka);
  68.         else cout<<"Brak kolejki do usuniecia"<<endl;
  69.         break;
  70.     case 7:
  71.         br=false;
  72.         if(kolejka!=NULL) delete kolejka;
  73.         break;
  74.         }
  75.         cout<<endl;
  76.         }while(br==true);
  77.  
  78.     return 0;
  79. }
  80.  
  81. int generowanie(){
  82. srand(time(NULL));
  83. int liczba=rand()%(10)+1;
  84. return liczba;
  85. }
  86.  
  87. queue* makeQueue(){
  88. queue* q = new queue;
  89. q->head=NULL;
  90. q->tail=NULL;
  91. return q;
  92. }
  93.  
  94. void enqueue(queue*q){
  95. element* el=new element;
  96. el->data=generowanie();
  97. cout<<"Dodana liczba to: "<<el->data<<endl;
  98. el->next=NULL;
  99. if(q->tail!=NULL) q->tail->next=el;
  100. else q->head=el;
  101. q->tail=el;
  102. }
  103.  
  104. void dequeue(queue*q){
  105. if(q->tail!=NULL){
  106.     element* temp = q->head;
  107.     q->head=q->head->next;
  108.     if(q->head==NULL) q->tail=NULL;
  109.     cout<<"Usunieta liczba to: "<<temp->data<<endl;
  110.     delete temp;
  111. } else cout<<"Kolejka jest pusta"<<endl;
  112. }
  113.  
  114. void dequeueAll(queue*&q){
  115. while(q->head!=NULL) dequeue(q);
  116. delete q;
  117. q=NULL;
  118. }
  119.  
  120. void showFirst(queue* q){
  121.     if(q->head==NULL) cout<<"Kolejka jest pusta"<<endl;
  122.     else cout<<"Pierwszy element w kolejce: "<<q->head->data<<endl;
  123. }
  124.  
  125. void showAll(queue* q){
  126. if(q->head==NULL) cout<<"Kolejka jest pusta"<<endl;
  127. else{
  128.     element* temp = q->head;
  129.     cout<<"Kolejka: ";
  130.     while(temp!=NULL){
  131.     cout<<temp->data<<" ";
  132.     temp=temp->next;
  133. }
  134.  delete temp;
  135.  cout<<endl;
  136. }
  137. }

Replies to Untitled rss

Title Name Language When
Re: Untitled Mazur Głazur text 3 Years ago.