Как эффективно удалить значения ниже порогового значения в структуре данных стека?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как эффективно удалить значения ниже порогового значения в структуре данных стека?

Сообщение Anonymous »

Я пытаюсь реализовать стек, который поддерживает следующие операции:
push: Помещает целочисленное значение на вершину стека.
pop: Удаляет верхний элемент из стека.
remove_lower value: Удаляет все элементы стека, значение которых меньше значения.
значение_remove_upper: Удаляет все элементы в стек больше значения.
Мне нужно убедиться, что все операции эффективны, особенно с учетом потенциального размера стека.
Я рассмотрел используя TreeMap для управления элементами в отсортированном порядке и хранения их количества, но я изо всех сил пытаюсь эффективно обрабатывать поведение стека «последним вошел — первым вышел» (LIFO) в сочетании с удалением пороговых значений.
Проблемы:

Синхронизация TreeMap и стека: TreeMap эффективно отслеживает элементы для удаления на основе пороговых значений, но не обновляет структуру стека напрямую.

Эффективность: удаление элементов как из TreeMap, так и из стека при сохранении приемлемой временной сложности оказывается сложной задачей.
Вопросы:
Как я могу эффективно синхронизировать TreeMap и стек во время операций удаления_ниже и удаления_upper?

Существует ли лучшая структура данных или подход для эффективного решения этой проблемы, учитывая как поведение стека (push/pop), так и удаление на основе порога требования?

Подробнее здесь: https://stackoverflow.com/questions/792 ... -structure
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»