Advertisement
myloyo

template stack

May 4th, 2023 (edited)
138
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. template <class T>
  11. class Stack {
  12.     struct node {
  13.         T data;
  14.         node *next;
  15.         node(string x, node *p) : data(x), next(p){}
  16.     };
  17.     node* head;
  18. public:
  19.     Stack() : head(0){}
  20.     bool Empty() { //проверка на пустоту стека
  21.         return head == 0;
  22.     }
  23.     void Push(T data) { // добавляем элемент
  24.         head = new node(data, head);
  25.     }
  26.     T Top() {
  27.         return head->data;
  28.     }
  29.     T Pop() {
  30.         node* r = head;
  31.         head = head->next;
  32.         T g = r->data;
  33.         delete r;
  34.         return g;
  35.     }
  36.  
  37. };
  38.  
  39. int main() {
  40.     Stack <string> 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. }
  62.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement