Эта проблема напоминает мне о проблеме нумерации строк , когда человек писал код в BASIC .В этой ситуации большинство людей сделали обоснованное предположение о том, сколько строк может быть вставлено между двумя строками.Тогда это предположение будет интервалом между этими линиями.Итак, если вы думаете, что у вас может быть 2000 вставок между двумя элементами, то вы можете сделать так, чтобы element1 имел ключ 2000, а make element2 иметь ключ 4000. Затем мы хотим поместить элемент между element1 или element2, и вы либо наивно разделите разницу(3000) или если у вас есть некоторая интуиция о том, сколько элементов будет на каждой стороне элемента 3, то вы можете взвесить его (например, 3500 вместо 3000).
Другая альтернатива (на самом деле это то же самое)но вы используете другую систему нумерации) это использовать числа с плавающей запятой, которые, я полагаю, вам не удалось.Между 1 и 2 будет 1,5.Между 1,5 и 2 будет 1,75.Между 1,5 и 1,75 будет 1,625 и т. Д.
Я бы рекомендовал использовать ключ, являющийся строкой.Лучше придерживаться цифровых клавиш, и, кроме того, вероятно, лучше иметь ключи целого типа, а не ключи с плавающей запятой, если вы можете помочь.