Похоже, вам нужен отсортированный список, где конец ссылки на начало.Я не знаю ни одной стандартной реализации, но было бы довольно легко реализовать ее самостоятельно.
Что-то вроде двусвязного списка с подключенной головой и хвостом будет работать.Операции добавления должны будут проходить по списку, чтобы найти подходящую позицию для вставки, делая операцию O (n).Это может привести к тому, что ваш список будет действительно плохо работать, поскольку в значительной степени все стандартные операции со списком будут O (n).
Вы можете легко реализовать distanceToNext
и / или distanceToPrevious
,просто получая значения текущего и следующего / предыдущего узлов и возвращая разницу.
Редактировать:
Только что из названия вопроса понял, что вы, вероятно, ищете какую-то библиотеку графического интерфейса для их рисования, и я просто намекнулна модели, которую вы могли бы использовать.Я подумаю о графическом интерфейсе.
Редактировать 2:
Ваша проблема сводится к тому, как вы рисуете многоугольник, когда вы знаете только длину сторон.Я попросил вас обменяться математическим стеком .