e-olymp
favorite Нам необходимо немного Вашей помощи чтобы сайт продолжал работать, нажмите на банер чтобы узнать больше.
Соревнования

class 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
Автор Михаил Медведев