Стоит отметить, что использование двух указателей позволяет ускорить выполнение всех основных операций, связанных с передвижением по списку. Однако, за счет использования дополнительного указателя, на такие структуры данных отводится больший объем памяти. Кроме того, реализация основных операций сопровождается большими временными затратами в силу сложности этих алгоритмов по сравнению с линейными однонаправленными списками (за счет манипулирования большим количеством указателей).
Частным случаем являются циклические списки, характерной чертой которых является отсутствие элементов с пустыми указателями. Структура циклических списков представлена на рисунках 4-5 [9].
Рисунок 4 – Циклический однонаправленный список
Рисунок 5 – Циклический двунаправленный список
Еще одной важной структурой данных является очередь, которая представляет собой последовательность элементов, образованную в порядке их поступления. Каждый новый элемент добавляется в конец очереди, а извлечение элементов реализуется из ее начала. Данный алгоритм называется FIFO: First In – First Out («первым пришел – первым вышел»).
Очередь может быть реализована как статически, так и динамически (см. рисунок 6). Основой динамической реализации очереди является линейный двунаправленный список, т.к. работа ведется с двумя концами [7].