Чем выгодно / невыгодно ленивое удаление для двоичного дерева или связанного списка?

Недавно для класса структур данных мне задали вопрос о том, как ленивое удаление (то есть удаление, которое сначала отмечает элементы, которые необходимо удалить, а затем, через некоторое время, удаляет все отмеченные элементы) быть выгодным / невыгодным для массива, связанного списка или двоичного дерева. Вот что я придумал:

  • Это поможет массивам, потому что вы сэкономите время, затрачиваемое на смещение массива каждый раз при удалении индекса, хотя в алгоритмах, которым необходимо обходить массив, могут быть неэффективности.
  • Это не поможет связать списки, потому что вам нужно пройти O (n), чтобы пометить элемент для удаления в любом случае.
  • Я не совсем уверен насчет бинарных деревьев, но если бы это была реализация одного из связанных списков, я бы подумал, что это похоже на связанный список?
9
задан doubleDown 15 August 2013 в 10:40
поделиться