Advertisement
vovnit

Stack on C++

Jul 21st, 2017
385
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.73 KB | None | 0 0
  1. template <typename T>
  2. class stack {
  3. private:
  4.     class node {
  5.     public:
  6.         T value;
  7.         node* prev;
  8.         node(T value, node* prev=nullptr) {
  9.             this->value = value;
  10.             this->prev = prev;
  11.         }
  12.         node(node *nd)
  13.         {
  14.             value = nd->value;
  15.             prev = nd->prev;
  16.         }
  17.     };
  18.  
  19.     node* top;
  20. public:
  21.     stack() {
  22.         top = nullptr;
  23.     }
  24.     void add(T value) {
  25.         if (top) {
  26.             top = new node(value, top);
  27.         } else
  28.             top = new node(value);
  29.     }
  30.     node* pop() {
  31.         node *tmp = new node(top);
  32.         delete top;
  33.         if (tmp->prev) {  
  34.             top = tmp->prev;
  35.         }
  36.         return tmp;
  37.     }
  38. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement