Этот вопрос связан с экзаменом, который у меня был, и я не мог его решить и хотел узнать, что такое ответ (это не домашнее задание, поскольку оно не поможет мне ни в чем, кроме знания).
Нам нужно создать структуру данных для содержания элементов, ключи которых являются действительными числами.
Структура данных должна иметь следующие функции:
Build (S, array): строит структуру данных S с n элементами в O (n)
Вставьте (S, k) и Delete (S, x) в O (lgn) (k - элемент, x - указатель на него в структуре данных)
Delete-Minimal-Positive (S): удалить элемент с минимальным положительным ключом
Режим (S): возвращает клавишу, наиболее часто встречающуюся в S в O (1)
Теперь, построение в O (n) обычно означает, что куча должна использоваться, но это не позволяет находить частоты. Я не мог найти никакого способа сделать это. Лучшее, что я мог придумать, заключается в создании Red-Black-Tree (O (nlgn)), который будет использоваться для создания кучи частоты.
Я умираю, чтобы узнать ответ...
Спасибо!