У forward_list поиск имеет O(n), а одиночная вставка или удаление после уже известного предшественника — O(1). Если позицию сначала нужно найти, вся операция становится линейной.
Назови алгоритмическую сложность операций вставки, поиска и удаления для forward_list.
У forward_list поиск имеет O(n), а одиночная вставка или удаление после уже известного предшественника — O(1). Если позицию сначала нужно найти, вся операция становится линейной.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
У forward_list поиск имеет O(n), а одиночная вставка или удаление после уже известного предшественника — O(1). Если позицию сначала нужно найти, вся операция становится линейной.
Контейнер односвязный: назад от текущего узла перейти нельзя. Поэтому используются insert_after и erase_after, а before_begin позволяет работать с первым элементом через тот же интерфейс.
Удаление по значению требует обхода, как и доступ к произвольному номеру элемента. Стоимость поиска предшественника нельзя исключать из оценки задачи только потому, что само переставление ссылки выполняется быстро.