Я пытаюсь реализовать стек, который поддерживает следующие операции:
push: Помещает целочисленное значение вверху стека.
pop: Удаляет верхний элемент из стека.
remove_lower value:< /em> Удаляет все элементы стека, значение которых меньше значения.
remove_upper value: Удаляет все элементы в стеке, размер которых превышает значение.
Мне нужно убедиться, что что все операции эффективны, особенно с учетом потенциального размера стека.
Я рассматривал возможность использования TreeMap для управления элементами в отсортированном порядке и хранения их количества, но я я изо всех сил пытаюсь эффективно обрабатывать стек Поведение «последним пришел — первым обслужен» (LIFO) в сочетании с удалением пороговых значений. Проблемы:
Синхронизация TreeMap и стека: TreeMap эффективно отслеживает элементы для удаления на основе пороговых значений, но не обновляет структуру стека напрямую.
Эффективность: удаление элементов из обоих TreeMap и стек при сохранении приемлемой временной сложности оказывается непростой задачей.
Вопросы:
Как я могу эффективно синхронизировать TreeMap и стек во время операций удаления_lower и Remove_upper?
Существует ли лучшая структура данных или подход для эффективного решения этой проблемы, учитывая как поведение стека (push/ pop) и требования к удалению на основе пороговых значений?
Я пытаюсь реализовать стек, который поддерживает следующие операции: [list] [*]push: Помещает целочисленное значение вверху стека. [*]pop: Удаляет верхний элемент из стека. [*]remove_lower value:< /em> Удаляет все элементы стека, значение которых меньше значения. [*]remove_upper value: Удаляет все элементы в стеке, размер которых превышает значение. [/list] Мне нужно убедиться, что что все операции эффективны, особенно с учетом потенциального размера стека. Я рассматривал возможность использования TreeMap для управления элементами в отсортированном порядке и хранения их количества, но я я изо всех сил пытаюсь эффективно обрабатывать стек Поведение «последним пришел — первым обслужен» (LIFO) в сочетании с удалением пороговых значений. [b]Проблемы:[/b] [list] [*]Синхронизация TreeMap и стека: TreeMap эффективно отслеживает элементы для удаления на основе пороговых значений, но не обновляет структуру стека напрямую.
Эффективность: удаление элементов из обоих TreeMap и стек при сохранении приемлемой временной сложности оказывается непростой задачей. [/list] [b]Вопросы:[/b] [list] [*]Как я могу эффективно синхронизировать TreeMap и стек во время операций удаления_lower и Remove_upper? [*]Существует ли лучшая структура данных или подход для эффективного решения этой проблемы, учитывая как поведение стека (push/ pop) и требования к удалению на основе пороговых значений? [/list]