eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Класс LinkedList

Класс LinkedList

Реализуйте структуру данных Однонаправленный Связный Список, которая поддерживает следующие операции:

  • Empty - Проверяет пустой ли список. Возвращает true или false.
  • addFirst - Добавляет элемент в начало списка.
  • addLast - Добавляет элемент в конец списка.
  • removeFirst - Удаляет элемент из начала списка.
  • removeLast - Удаляет элемент из конца списка.
  • size - Возвращает количество элементов в списке.
  • Print - Выводит элементы списка в одной строке.

Напишите код согласно следующего интерфейса:

// Java
class ListNode
{
  int data; // значение вершины
  ListNode next; // ссылка на следующую вершину
  public ListNode(int data); // конструктор
}

class LinkedList
{
  ListNode head, tail; // ссылки на голову и хвост списка
  public LinkedList(); // конструктор
  public boolean Empty(); // проверка пустой ли список
  public void addFirst(int val); // добавить val в начало списка
  public void addLast(int val); // добавить val в конец списка
  public boolean removeFirst(); // удалить первый элемент списка, вернуть true если удаление прошло успешно
  public boolean removeLast(); // удалить последний элемент списка, вернуть true если удаление прошло успешно
  public int size(); // вернуть размер списка
  public void Print(); // вывести значения списка в одной строке
}
// C++
class ListNode
{
public:
  int data; // значение вершины
  ListNode *next; // указатель на следующую вершину 
  ListNode(int data); // конструктор
};

class LinkedList
{
public:
  ListNode *head, *tail;  // указатели на голову и хвост списка
  LinkedList(); // конструктор
  bool Empty(); // проверка пустой ли список
  void addFirst(int val); // добавить val в начало списка
  void addLast(int val); // добавить val в конец списка
  bool removeFirst(); // удалить первый элемент списка, вернуть true если удаление прошло успешно
  bool removeLast(); // удалить последний элемент списка, вернуть true если удаление прошло успешно
  int size(); // вернуть размер списка
  void Print(); // вывести значения списка в одной строке
};

prb10045.gif

Ліміт часу 1 секунда
Ліміт використання пам'яті 128 MiB
Автор Михаил Медведев