Лекция 11 Деревья отрезков (Interval trees) Курносов Михаил Георгиевич E-mail: [email protected]WWW: www.mkurnosov.net Курс “Алгоритмы и структуры данных” Сибирский государственный университет телекоммуникаций и информатики (Новосибирск) Осенний семестр, 2014
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Курс “Алгоритмы и структуры данных”Сибирский государственный университет телекоммуникаций и информатики (Новосибирск)Осенний семестр, 2014
Отрезки и интервалы
2
Отрезок (замкнутый интервал, closed interval) – это множество действительных чисел, которое записывается как [t1, t2] и определяется следующим образом
{𝑡 ∈ ℝ ∶ 𝑡1 ≤ 𝑡 ≤ 𝑡2}
Открытый интервал (open interval) – это множество действительных чисел, которое записывается как (t1, t2) и определяется следующим образом
{𝑡 ∈ ℝ ∶ 𝑡1 < 𝑡 < 𝑡2}
Полуоткрытый интервал (half-open interval) – это множество действительных чисел, которое записывается как [t1, t2) или (t1, t2]и определяется следующим образом
{𝑡 ∈ ℝ ∶ 𝑡1 ≤ 𝑡 < 𝑡2} или {𝑡 ∈ ℝ ∶ 𝑡1 < 𝑡 ≤ 𝑡2}
Представление отрезков
3
Представим отрезок i как объект со следующими атрибутами:
i.low – левый, нижний конец отрезка (low endpoint)
i.high – правый, верхний конец отрезка (high endpoint)
[ ]i.low i.high
Трихотомия отрезков
4
Для любых двух отрезков a и b выполняется только одно из трех свойств:
a) отрезки a и b перекрываются (overlap): a.low ≤ b.high и b.low ≤ a.high
b) отрезок a находится левее b: a.high < b.low
c) отрезок a находится правее b: a.low > b.high
a
b
a
b
a
b
a
b
a) overlap
a b b a
b) c)
Дерево отрезков (Interval tree)
5
Дерево отрезков (interval tree) – это красно-черное дерево, в котором каждый узел содержит: