Лабораторная работа IV «Линейные и циклические списки»

Лабораторная работа «Линейные и циклические списки»

Цель: понять, чем связанное хранение отличается от массива.

Узел:

function createNode(value, next = null) {
return { value, next };
}

Обязательные функции:

function pushFront(head, value) {}
function pushBack(head, value) {}
function findNode(head, value) {}
function deleteValue(head, value) {}
function listLength(head) {}
function reverseList(head) {}
function toArray(head) {}

После односвязного списка студент реализует циклический вариант.

Обязательные алгоритмические задания:

  • вставка по позиции;

  • удаление первого совпадения;

  • удаление всех совпадений;

  • разворот списка;

  • поиск среднего элемента двумя указателями;

  • определение наличия цикла алгоритмом «черепаха и заяц»;

  • задача Иосифа на циклическом списке.

Эксперимент: сравнить вставку в начало массива и связного списка; поиск по индексу в массиве и списке.

Нужно обязательно обсудить, что измеренная в Chrome длительность — экспериментальный результат конкретной реализации, тогда как асимптотическая оценка характеризует рост числа операций.

Автор: к.п.н., Румянцев Сергей Александрович, доцент Финансового университета при Правительстве РФ; доцент ОЧУВО Международного инновационного университета; Консалтинг, управление разработкой ПО; системный и бизнес анализ; менеджмент; аналитиз данных; управление ИТ. Телефон для связи +79269444818 (мессенджеры)   Короткая ссылка:

Лабораторная работа «Линейные и циклические списки»

Цель: понять, чем связанное хранение отличается от массива.

Узел:

function createNode(value, next = null) {
return { value, next };
}

Обязательные функции:

function pushFront(head, value) {}
function pushBack(head, value) {}
function findNode(head, value) {}
function deleteValue(head, value) {}
function listLength(head) {}
function reverseList(head) {}
function toArray(head) {}

После односвязного списка студент реализует циклический вариант.

Обязательные алгоритмические задания:

  • вставка по позиции;

  • удаление первого совпадения;

  • удаление всех совпадений;

  • разворот списка;

  • поиск среднего элемента двумя указателями;

  • определение наличия цикла алгоритмом «черепаха и заяц»;

  • задача Иосифа на циклическом списке.

Эксперимент: сравнить вставку в начало массива и связного списка; поиск по индексу в массиве и списке.

Нужно обязательно обсудить, что измеренная в Chrome длительность — экспериментальный результат конкретной реализации, тогда как асимптотическая оценка характеризует рост числа операций.

https://webprogr.ru/~Gfsnp
Короткая ссылка на новость:https://webprogr.ru/~Gfsnp


Последние новости

Лабораторная работа IV «Линейные и циклические списки»

Лабораторная работа «Линейные и циклические списки»

Цель: понять, чем связанное хранение отличается от массива.

Узел:

function createNode(value, next = null) {
return { value, next };
}

Обязательные функции:

function pushFront(head, value) {}
function pushBack(head, value) {}
function findNode(head, value) {}
function deleteValue(head, value) {}
function listLength(head) {}
function reverseList(head) {}
function toArray(head) {}

После односвязного списка студент реализует циклический вариант.

Обязательные алгоритмические задания:

  • вставка по позиции;

  • удаление первого совпадения;

  • удаление всех совпадений;

  • разворот списка;

  • поиск среднего элемента двумя указателями;

  • определение наличия цикла алгоритмом «черепаха и заяц»;

  • задача Иосифа на циклическом списке.

Эксперимент: сравнить вставку в начало массива и связного списка; поиск по индексу в массиве и списке.

Нужно обязательно обсудить, что измеренная в Chrome длительность — экспериментальный результат конкретной реализации, тогда как асимптотическая оценка характеризует рост числа операций.

Рейтинг@Mail.ru