Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include <iostream>
- #include <list>
- using namespace std;
- template <typename T>
- class MyStack
- {
- public:
- MyStack(initializer_list<T> l) : m_data(l) {}
- //void push(T &&x) { m_data.push_back(x); }
- void push(const T &x) { m_data.push_back(x); }
- void pop() { m_data.pop_back(); }
- T& top() { return m_data.back(); }
- const T& top() const { return m_data.back(); }
- bool empty() const { return m_data.empty(); }
- size_t size() const { return m_data.size(); }
- void print() {
- if (!m_data.empty()) {
- while (!m_data.empty())
- {
- cout << top() << " ";
- pop();
- }
- }
- else
- {
- cout << "stack empty" << endl;
- }
- }
- protected:
- list<T> m_data;
- };
- template <typename T>
- class MyList
- {
- public:
- MyList(initializer_list<T> l) : m_data(l) {}
- void push_bac(const T &x) { m_data.push_back(x); }
- void push_fro(const T &x) { m_data.push_front(x); }
- // find
- void insert(const T &x) { m_data.insert(x); }
- void clar() { m_data.clear(); }
- void erase_() { m_data.erase(); }
- void pop_bac() { m_data.pop_back(); }
- void pop_fro() { m_data.pop_front(); }
- void pop() { m_data.pop_back(); }
- T& top() { return m_data.back(); }
- T& fro() { return m_data.front; }
- const T& top() const { return m_data.back(); }
- bool empty() const { return m_data.empty(); }
- size_t size() const { return m_data.size(); }
- void print() {
- if (!m_data.empty()) {
- m_data.reverse();
- while (!m_data.empty())
- {
- cout << top() << ", ";
- pop();
- }
- }
- else
- {
- cout << "stack empty" << endl;
- }
- }
- protected:
- list<T> m_data;
- };
Add Comment
Please, Sign In to add comment