Skip to main content

06. Двусвязный список

Связный список - это список, но построенный на основе двунаправленной очереди, а не массива.

Задание

Трудоёмкость

Это задание рассчитано на два урока, за него будет выставлено две оценки

Расширьте класс MyQueue из предыдущего задания (использовать встроенные коллекции java запрещается) так, чтобы он стал списком:

Использовать встроенные коллекции java запрещается

  1. void insert(int i, int v) - добавляет элемент v по индексу i, перед тем, как добавить новый элемент, все, начиная с i-го сдвигаются на 11 вправо, освобождая i-ю позицию под новый элемент. Если элемента с таким индексом ещё нет, возвращает false, в остальных случаях true
  2. boolean addAll(MyQueue myQueue) - добавляет в конец все элементы из списка, полученного в аргументах.
  3. boolean insertAll(int index, MyQueue myQueue) - добавляет все элементы из списка, полученного в аргументах по индексу i. Перед тем, как добавить новый элемент, все, начиная с i-го сдвигаются на 11 вправо, освобождая i-ю позицию под новый элемент
  4. int get(int index) - получить значение элемента по индексу
  5. int indexOf(int v) - возвращает индекс первого элемента, равного переданному в аргументах значению. Если такого элемента нет, то метод должен вернуть значение -1
  6. int lastIndexOf(int v) - возвращает индекс последнего элемента, равного переданному в аргументах значению. Если такого элемента нет, то метод должен вернуть значение -1
  7. int set(int i, int v) - задаёт новое значение элементу с индексом i, возвращает старое значение
  8. void sort() - сортирует очередь по возрастанию

Очередь, построенная на массиве не засчитывается.

Все поля и методы должны иметь модификатор public

Ссылка на контест