Advertisement
TShiva

Array of queue

Feb 18th, 2015
405
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.75 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. using namespace std;
  5.  
  6. struct QueueElem
  7. {
  8.     char info;
  9.     QueueElem *NEXT;
  10. };
  11.  
  12.  
  13. class queue //Класс очереди
  14. {
  15.  
  16.     QueueElem *head; // указатель, хранящий адресс головы очереди
  17.     int size; //Текущий размер очереди
  18. public:
  19.     queue(){
  20.         head = 0;
  21.         size = 0;
  22.     }
  23.  
  24.  
  25.  
  26.     int Queue_size(){ return size; }
  27.     QueueElem* get_head(){ return head; }
  28.  
  29.  
  30.     void push(char info)
  31.     {
  32.         size++;
  33.         QueueElem *temp = new QueueElem;
  34.         temp->info = info;
  35.         temp->NEXT = head;
  36.         head = temp;
  37.  
  38.  
  39.     }
  40.  
  41.     char  pop(){
  42.         QueueElem *temp = head;
  43.         if (size >= 2){
  44.             while (temp->NEXT->NEXT != 0) {
  45.                 temp = temp->NEXT;
  46.             }
  47.             size--;
  48.             char a = temp->info;
  49.             delete temp;
  50.             return a;
  51.         }
  52.         if (size == 1) {
  53.             char a = head->info;
  54.             delete head;
  55.             return a;
  56.         }
  57.         if (size == 0) {
  58.             cout << "No elements" << endl;
  59.             return 0;
  60.         }
  61.     }
  62.  
  63.  
  64.     bool Check_empty(){
  65.         if (size = 0){ return true; }
  66.         return false;
  67.     }
  68.  
  69.     queue(const queue &A){
  70.         QueueElem *temp = new QueueElem;
  71.         QueueElem *p1 = A.head;//указатель который будет бегать по начальной очереди
  72.         temp->info = A.head->info;
  73.         temp->NEXT = 0;
  74.         head = temp;
  75.         QueueElem *p2 = head;
  76.         while (p1->NEXT != 0){
  77.            
  78.  
  79.             temp = temp->NEXT;
  80.         }
  81.     }
  82.  
  83.  
  84.     ~queue(){
  85.         if (Check_empty == false){
  86.             while (head->NEXT != 0){
  87.                 QueueElem *temp = head;
  88.                 head = head->NEXT;
  89.                 delete temp;
  90.             }
  91.         }
  92.     }
  93.  
  94.     //конструктор копирования,перегрузить =,<<,>>
  95.     //для массива реализовать помимо прочего еще []
  96.  
  97.  
  98. };
  99.  
  100. int main()
  101. {
  102.  
  103.  
  104.  
  105.     system("pause");
  106.  
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement