Потерянный прием в структурах данных


Решил систематизировать навыки по объектно-ориентированному анализу и проектированию(это про то, как проектировать ПО на основе АТД и их взаимодействия), наткнулся на следующий хороший прием для линейных структур данных(список, массив), как понятие курсора.
Курсор всегда указывает на какой-либо узел, если список(возьмем его для примера) не пуст. Есть набор операций, который применяется к узлу курсора(такой узел называют текущим). На картинках как раз эти методы, есть еще remove, который не поместился в скрин.
И как-то сильно гибче по использованию становится такой контейнер: двигай себе курсор от головы к хвосту или наоборот, вставляй значения в таком порядке, в котором тебе вздумывается, удаляй, меняй, все в атомарных командах есть.
Сейчас конечно стандартной реализации списков во всех языках хватает — пару раз пробежаться по списку всякими map’ами и готово, особых манипуляций с гибким наполнением не требуется. Но меня удивило, что только сейчас наткнулся на подобный прием в контексте структур данных.
Да, в драйверах подключения к БД, да в той же алхимии, понятие курсора есть. Почему не упомянуть его в курсах по алгоритмам — вопрос, прикольно ведь.