Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- /*
- <prev-- item --next> <prev-- _first --next> <prev-- second element --next>
- <prev-- ...
- */
- class List {
- public:
- struct Item {
- int value{};
- Item* previous{};
- Item* next{};
- };
- List() = default;
- List(List const& second_list) {}
- ~List() {
- for (unsigned i = 0; i < size(); i++) {
- delete_front();
- }
- }
- void push_front(int value) {
- Item* item = new Item{};
- item->value = value;
- if (is_empty()) {
- _first = item;
- _last = item;
- } else {
- item->next = _first;
- _first->previous = item;
- _first = item;
- }
- _size++;
- }
- void push_back(int value) {}
- int pop_front() {
- if (is_empty()) {
- return 0;
- }
- int first_value = _first->value;
- delete_front();
- return first_value;
- }
- int pop_back() {}
- bool is_empty() const { return size() == 0; }
- unsigned size() const { return _size; }
- private:
- void delete_front() {
- Item* second_element = _first->next;
- delete _first;
- _first = second_element;
- _size--;
- }
- Item* _first{};
- Item* _last{};
- unsigned _size{};
- };
- int main() {}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement