Advertisement
myloyo

stack

May 4th, 2023 (edited)
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 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.  
  11. class Stack {
  12.     struct slovos {
  13.         string wrd;
  14.         slovos *next;
  15.         slovos(string x, slovos *p) : wrd(x), next(p){}
  16.     };
  17.     slovos* head;
  18. public:
  19.     Stack() : head(0){}
  20.     bool Empty() { //проверка на пустоту стека
  21.         return head == 0;
  22.     }
  23.     void Push(string data) { // добавляем элемент
  24.         head = new slovos(data, head);
  25.     }
  26.     string Top() {
  27.         return head->wrd;
  28.     }
  29.     string Pop() {
  30.         slovos* r = head;
  31.         string i = r->wrd;
  32.         head = r->next;
  33.         delete r;
  34.         return i;
  35.     }
  36.  
  37. };
  38.  
  39. int main() {
  40.     Stack t, t1;
  41.     string s;
  42.     while (in >> s) {
  43.         t.Push(s);
  44.     }
  45.     in.close();
  46.  
  47.     while (!t.Empty()) {
  48.         string i = t.Pop();
  49.         t1.Push(i);
  50.         if (i.size() == 1) {
  51.             t1.Push(i);
  52.         }
  53.     }
  54.  
  55.     while (!t1.Empty()) {
  56.         out << t1.Pop() << endl;
  57.     }
  58.     out.close();
  59.  
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement