Advertisement
myloyo

куеуе

May 4th, 2023 (edited)
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.38 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <iomanip>
  4. #include <fstream>
  5.  
  6. using namespace std;
  7.  
  8. ifstream in("input.txt");
  9. ofstream out("output.txt");
  10. template <class T>
  11. class Queue {
  12.     struct node {
  13.         T data;
  14.         node *next;
  15.         node(string x, node *p) : data(x), next(p){}
  16.     };
  17.     node* head;
  18.     node* tail;
  19. public:
  20.     Queue() : head(0), tail(0){}
  21.     bool Empty() { //проверка на пустоту стека
  22.         return head == 0;
  23.     }
  24.     void Push(T data) { // добавляем элемент
  25.         node* r = new node(data, nullptr);
  26.         if (tail == nullptr) {
  27.             head = tail = r;
  28.         }
  29.         else {
  30.             tail->next = r;
  31.             tail = r;
  32.         }
  33.     }
  34.     T Top() {
  35.         return head->data;
  36.     }
  37.     T Pop() {
  38.         node* r = head;
  39.         head = head->next;
  40.         T g = r->data;
  41.         delete r;
  42.         if (head == nullptr) {
  43.             tail = nullptr;
  44.         }
  45.         return g;
  46.     }
  47.  
  48. };
  49.  
  50. int main() {
  51.     Queue <string> t, t1;
  52.     string s;
  53.     while (in >> s) {
  54.         t.Push(s);
  55.     }
  56.     in.close();
  57.  
  58.     while (!t.Empty()) {
  59.         string i = t.Pop();
  60.         t1.Push(i);
  61.         if (i.size() == 1) {
  62.             t1.Push(i);
  63.         }
  64.     }
  65.  
  66.     while (!t1.Empty()) {
  67.         out << t1.Pop() << endl;
  68.     }
  69.     out.close();
  70.  
  71.     return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement