Линейный однонаправленный список

Run Settings
LanguageC++
Language Version
Run Command
#include <iostream> using namespace std; // Структура элемента (узла) списка struct Node { int data; Node *next; }; class List { private: Node *head, *tail; public: List() : head(nullptr), tail(nullptr) {} void add(int num); void print() const; void erase(); }; // Добавить объект в конец списка void List::add(int data) { Node *newNode = new Node; newNode->data = data; newNode->next = nullptr; if (head != nullptr) tail->next = newNode; else head = newNode; tail = newNode; cout << "В конец списка добавлен объект со значением: " << newNode->data << endl; } // Показать данные всех объектов списка void List::print() const { if (head != nullptr) { cout << "Список содержит следующие значения: "; Node *current = head; while (current != nullptr) { cout << current->data << ' '; current = current->next; } cout << endl; } } // Удалить один объект из начала списка void List::erase() { cout << "Из начала списка удален объект со значением: " << head->data << endl; if (head != tail) { Node *next = head->next; delete head; head = next; } else { delete head; head = tail = nullptr; } } int main() { List list; list.add(5); list.add(10); list.print(); cout << endl; list.erase(); list.print(); cout << endl; list.add(15); list.print(); cout << endl; list.erase(); list.print(); cout << endl; list.erase(); list.print(); cout << endl; return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines