Хеш-таблица будет поддерживать вставку, удаление и поиск гораздо лучше, чем O (log (n)). Это предполагает, что вам никогда не придется повторно хэшировать все, когда вы увеличиваете таблицу. Трудной частью было бы найти «следующий» автомобиль за время O (1).
В зависимости от реализации, min куча даст вам между O (1) и O (log (n)) (амортизированная) вставка, и нахождение минимального элемента O (1). Удаление элемента из кучи является операцией O (log (n)), но обнаружение произвольного элемента в куче превышает O (log (n)).
Если бы я реализовал это, я бы использовал две отдельные структуры данных: хеш-таблицу и минимальную кучу. Причина заключается в том, что хеш-таблица обеспечивает очень быструю вставку, удаление и поиск, а куча обеспечивает упорядочение на основе времени обслуживания. Единственное место, где это не соответствует вашим начальным требованиям, - это удаление транспортного средства, поскольку для этого требуется поискать в куче произвольный элемент.
На самом деле, было бы возможно, хотя и возможно, беспорядочно объединить две структуры данных, чтобы ваша хеш-таблица сохраняла объекты узла кучи (которые имеют ссылку на фактические данные), а не фактические объекты данных. Пока узел кучи знает, где он находится в куче (то есть имеет родительский указатель, а также левый и правый дочерние указатели), вы можете использовать хеш-таблицу, чтобы найти узел и удалить этот узел из кучи.