Отделите требования к хранилищу от структуры данных.
Вы говорите, что хотите непрерывную память - тогда я предполагаю, что вы хотите захватить кусок памяти и работать полностью в этой памяти, а не выделять больше фрагментов во времени.
Теперь простейший случай - это очередь, реализованная через кольцевой буфер внутри вашего блока памяти. Я предполагаю, что вы хотите чего-то лучшего, потому что у вас нет пятерки здесь.
Так что какая-то форма сбалансированного дерева звучит так, как вам нужно. Выбор, вероятно, зависит от того, какие шаблоны существуют с поступающими ключами. Случайные? По возрастанию?
Морщина заключается в том, чтобы выделять память из вашего чанка, а не с помощью обычного распределителя кучи, что, вероятно, подразумевает также и сохранение свободного списка.
Было бы интересно узнать, почему вы цените непрерывный блок памяти.