bogdan_obukhovskii

13 задание

Apr 22nd, 2020
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.02 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. //queue element с ошибкой в названии, медведкова привыкла писать так
  6. struct QEUE_ELENENT
  7. {
  8.     char info;        //информация
  9.     QEUE_ELENENT* next; //указатель на следующий элемент
  10. };
  11.  
  12. //класс очереди
  13. class Qeue
  14. {
  15.     QEUE_ELENENT* head; //указатель на начало нашего списка
  16.     //указатель на конец можно, но мы пишем простейший код на троечку
  17.  
  18. public:
  19.     Qeue() : head(NULL){}; //конструктор
  20.  
  21.     //добавление в конец
  22.     void push(char input)
  23.     {
  24.         QEUE_ELENENT* temp = new QEUE_ELENENT;
  25.         temp->next = NULL;
  26.         temp->info = input;
  27.  
  28.         if (head == NULL)
  29.         {
  30.             head = temp;
  31.             return;
  32.         }
  33.         if (head->next == NULL)
  34.         {
  35.             head->next = temp;
  36.             return;
  37.         }
  38.  
  39.         QEUE_ELENENT* t = head;
  40.         while (t->next != NULL)
  41.         {
  42.             t = t->next;
  43.         }
  44.         t->next = temp;
  45.     }
  46.  
  47.     //удаление первого элемента
  48.     void pop()
  49.     {
  50.         if (head->next == NULL)
  51.             head = NULL;
  52.         else
  53.             head = head->next;
  54.     }
  55.  
  56.     //вывод всех элементов
  57.     void print()
  58.     {
  59.         QEUE_ELENENT* t = head;
  60.         while (t != NULL)
  61.         {
  62.             cout << t->info << endl;
  63.             t = t->next;
  64.         }
  65.     }
  66.  
  67.     //в алфавитном ли порядке
  68.     bool alphabetASC()
  69.     {
  70.         QEUE_ELENENT* t = head;
  71.         char prev = t->info;
  72.  
  73.         while (t != NULL)
  74.         {
  75.             //вывод промежуточных
  76.             //cout << "prev = " << prev << "; t->info = " << t->info << "; \n";
  77.             if (prev > t->info) return false;
  78.  
  79.             prev = t->info;
  80.             t = t->next;
  81.         }
  82.        
  83.         return true;
  84.     }
  85.  
  86.     //пуста ли очередь
  87.     bool empty()
  88.     {
  89.         return head == NULL;
  90.     }
  91. };
  92.  
  93. int main()
  94. {
  95.     setlocale(0, "rus");
  96.  
  97.     Qeue* q = new Qeue;
  98.  
  99.     q->push('a');
  100.     q->push('b');
  101.     q->push('z');
  102.     q->push('d');
  103.  
  104.     q->print();
  105.  
  106.     cout << endl << "В алфавитном? (1 - Да, 0 - Нет):    " << q->alphabetASC() << endl;
  107. }
Add Comment
Please, Sign In to add comment