Я решил эту проблему как часть задания давно назад. Вы можете найти его здесь
У меня есть несколько реализаций в Java и C ++, реализующих MinHeap с массивами и без них. Смотрите мои реализации Java для решения. И да, очень возможно реализовать Heap без массивов. Вам просто нужно запомнить, куда вставить следующий узел и как выполнить heapify и выполнить обратное heapify.
Edit1: я также пытался найти любые существующие решения для минимальной кучи без массивов, но не смог найти ни одного. Итак, я публикую его здесь, чтобы он мог быть полезен всем, кто хочет знать подход.