Как упоминается в caco3 в комментариях, если элементы в приоритетной очереди хранятся в массиве, разработчики этой структуры данных приоритетной очереди могут решить сохранить первый элемент в массиве в позиции 0 или позиции 1.
Помещение первого элемента в позицию 0 означает, что дочерние элементы находятся в позициях 2N + 1 и 2N + 2. Когда первый элемент сохраняется в позиции 1, дочерние элементы находятся в позициях 2N и 2N + 1.
Любой выбор может привести к правильной реализации. Начиная с 0, вы экономите немного места. Но некоторые люди считают, что математика и код более элегантны, если начать с 1.