gitverse new year логотип

task-12-konovalova

Форк
0
Форк от kim-2024-2025/task-12-snapshot-m8Jcg

месяц назад
README.md

task-12

Цель этого задания – разработать библиотеку, предоставляющую стандартные структуры данных.

var Queue = require('./standard-library.js').Queue;
var queue = new Queue();
queue.enqueue("foo");
queue.enqueue("bar");
queue.enqueue("baz");
queue.dequeue(); // "foo"
queue.dequeue(); // "bar"
queue.dequeue(); // "baz"

Для этого написать реализацию функций-конструкторов, заданных в модуле

standard-library.js
.

Главное, чтобы структуры реализовывали заданный интерфейс – то есть, предоставляли перечисленные свойства и методы.

Скорее всего, при реализации структур данных вы будете использовать наследование. Делать методы родителя недоступными в потомке не нужно.

Заготовка модуля находится в файле

standard-library.js
.

Необходимо реализовать следующие структуры данных.

Коллекция (Collection)

Коллекция элементов. Поддерживает операции вставки и извлечения первого и последнего элемента, хранит ссылки на первый и последний элемент.

  • first – первый элемент коллекции
  • last – последний элемент коллекции
  • length – количество элементов в коллекции
  • isEmpty – true, если коллекция пуста
  • pickFirst() – извлекает первый элемент из коллекции и возвращает его
  • pickLast() – извлекает последний элемент из коллекции и возвращает его
  • insertFirst() – вставляет элемент в начало колекции
  • insertLast() – вставляет элемент в конец коллекции
  • empty() – очищает коллекцию

Очередь (Queue)

Список элементов, организованных по принципу "первым пришёл – первым вышел". Элементы добавляются и извлекаются с одного конца списка.

  • length – количество элементов в очереди
  • enqueue(item) – добавляет элемент в очередь
  • dequeue() – извлекает элемент из очереди
  • empty() – очищает очередь

Массив фиксированной длины (Fixed array)

Массив фиксированного размера. Попытка добавить или получить элемент за пределами указанного диапазона должна вызывать ошибку RangeError.

  • length – количество элементов в массиве
  • insertAt(index, item) – записывает элемент в массив по заданному индексу
  • getAt(index) – возвращает элемент по указанному индексу.

Множество (Set)

Список, хранящий уникальные элементы.

  • length - количество элементов в множестве
  • insert(item) - добавляет элемент в множество
  • remove(item) - удаляет элемент из множества
  • has(item) - проверяет, входит ли элемент в множество
  • intersect(set) – возвращает множество элементов входящих в исходное множество и в переданное множество (в оба сразу)
  • union(set) – возвращает множество элементов входящих в исходное множество или в переданное множество (в любое из двух)
  • empty() – очищает множество

Встроенный объект

Set
использовать не разрешается.

Описание

Репозиторий студента konovalova, созданный из task-12-snapshot-m8Jcg

Языки

JavaScript

Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.