Укладка дерева — различия между версиями
Exprmntr (обсуждение | вклад)  | 
				Exprmntr (обсуждение | вклад)   | 
				||
| Строка 4: | Строка 4: | ||
Существуют несколько способов укладки дерева на плоскости.  | Существуют несколько способов укладки дерева на плоскости.  | ||
=== Поуровневая укладка ===  | === Поуровневая укладка ===  | ||
| − | Простой способ построения нисходящего плоского изображения дерева заключается в использовании его поуровневого расположения, при котором вершины глубины <tex>a</tex> имеют координату <tex>y = – a</tex>, а координаты по горизонтальной оси распределяются так, чтобы никакие левые поддеревья не пересекались с правыми. Возможна реализация за   | + | Простой способ построения нисходящего плоского изображения дерева заключается в использовании его поуровневого расположения, при котором вершины глубины <tex>a</tex> имеют координату <tex>y = – a</tex>, а координаты по горизонтальной оси распределяются так, чтобы никакие левые поддеревья не пересекались с правыми. Возможна реализация за линейное время, позволяющая получить оптимальное по ширине плоское дерево в области размера <tex>O(N^2)</tex> (где <tex>N</tex> — число вершин дерева).    | 
=== Радиальная поуровневая укладка ===  | === Радиальная поуровневая укладка ===  | ||
| − | Радиальная поуровневая укладка дерева отличается тем, что его уровни имеют вид концентрических окружностей, поддеревья занимают секторные сегменты.  | + | Радиальная поуровневая укладка дерева отличается тем, что его уровни имеют вид концентрических окружностей, поддеревья занимают секторные сегменты.    | 
| + | |||
| + | Выбор угла <tex>\beta_p</tex> секторного сегмента для поддерева с корнем <tex>p</tex> и количеством вершин <tex>l(p)</tex> определяется следующим образом: пусть вершина <tex>p</tex> лежит на уровне  <tex>C_i</tex>, тогда  для каждого ее сына  <tex>q</tex> имеем: <tex>\beta_q = \min(\frac{l(q)\beta_p}{l(p)}, \tau)</tex>, где <tex>\tau</tex> — это угол области <tex>F_p</tex>, определяемой пересечением касательной к точке <tex>p</tex> уровня <tex>C_i</tex> и окружностью уровня <tex>C_{i+1}</tex>.  | ||
| + | |||
| + | Радиальное изображение дерева часто используют для представления свободных деревьев, причем в качестве вершины, размещаемой в центре, берется одна из его центральных вершин.  | ||
| + | === hv-изображения ===  | ||
[[Категория: Алгоритмы и структуры данных]]  | [[Категория: Алгоритмы и структуры данных]]  | ||
[[Категория: Укладки графов ]]  | [[Категория: Укладки графов ]]  | ||
Версия 09:06, 27 октября 2010
Дерево — планарный граф. Согласно следствию из формулы Эйлера: для дерева с вершинами .
Содержание
Укладка дерева
Существуют несколько способов укладки дерева на плоскости.
Поуровневая укладка
Простой способ построения нисходящего плоского изображения дерева заключается в использовании его поуровневого расположения, при котором вершины глубины имеют координату , а координаты по горизонтальной оси распределяются так, чтобы никакие левые поддеревья не пересекались с правыми. Возможна реализация за линейное время, позволяющая получить оптимальное по ширине плоское дерево в области размера (где — число вершин дерева).
Радиальная поуровневая укладка
Радиальная поуровневая укладка дерева отличается тем, что его уровни имеют вид концентрических окружностей, поддеревья занимают секторные сегменты.
Выбор угла секторного сегмента для поддерева с корнем и количеством вершин определяется следующим образом: пусть вершина лежит на уровне , тогда для каждого ее сына имеем: , где — это угол области , определяемой пересечением касательной к точке уровня и окружностью уровня .
Радиальное изображение дерева часто используют для представления свободных деревьев, причем в качестве вершины, размещаемой в центре, берется одна из его центральных вершин.