Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template <typename T>
- class stack
- {
- public:
- stack()
- {
- start = nullptr;
- }
- stack(initializer_list<T> values)
- {
- start = nullptr;
- for (auto val : values)
- push(val);
- }
- void push(T val)
- {
- if (start)
- {
- node* temp = new node(val);
- temp->next = start;
- start = temp;
- }
- else
- start = new node(val);
- }
- void pop()
- {
- node* temp = start->next;
- delete start;
- start = temp;
- }
- ~stack()
- {
- node* temp = start;
- while (temp != nullptr)
- pop();
- }
- void print()
- {
- node* temp = start;
- while (temp != nullptr)
- cout << temp->info << " ";
- cout << endl;
- }
- private:
- struct node
- {
- node* next;
- T info;
- node(T val)
- {
- info = val;
- next = nullptr;
- }
- };
- node* start;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement