Структура данных для обработки интервалов

У меня есть ряд временных интервалов (t_start, t_end), которые не могут перекрываться, т.е. t_end (i)> t_start (I + 1). Я хочу сделать следующие операции:

1) Добавить новые (объединение) интервалов [{(1,4), (8,10)} U (3,7) = {(1,7), (8,10)}]

2) Убрать интервалы [(1,7) - (3,5) = {(1,3), (5,7)}

3) Проверка, перекрывает ли точка или интервал интервал в моей серии (пересечение)

4) Нахождение первогобез интервала» минимальной длины после некоторой точки [{(1,4), (7,8)}: есть "без интервала» длиной от 3 до 4].

Я хочу знать хорошие способы реализации этого, с низкой сложностью (log n для всех операций будет делать это).

Связанный вопрос:Структура данных для быстрого поиска временного интервала

Ответы на вопрос(5)

Ваш ответ на вопрос