Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- tempalte<typename T>
- class MyList{
- private:
- struct Elem {
- T value;
- Elem* forward_ptr = nullptr;
- Elem* back_ptr = nullptr;
- };
- size_t size = 0;
- Elem* first = nullptr;
- Elem* last = nullptr;
- public:
- void Push_back(const T& new_val) {
- Elem* in= new Elem{new_value, nullptr, nullptr};
- if (size == 0) {
- first = in;
- } else {
- last.forward_ptr = in;
- in.back_ptr = last;
- }
- last = in;
- ++size;
- }
- T Pop_back() {
- T temp = last->value;
- if (size == 1) {
- delete first;
- first = last = nullptr;
- } else {
- last->back_ptr->forward_ptr = nullptr;
- Elem* tempPtr = last;
- last = last->back_ptr;
- delete tempPtr;
- }
- --size;
- return temp;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment