Локоть к локтю, кирпич к стене Назад
subgraph k = 2
D(( ))
D --- E(( ))
D --- F(( ))
F --- G(( ))
end
subgraph k = 1
B(( ))
B --- C(( ))
end
subgraph k = 0
A(( ))
end
</figcaption>
A --- B(( ))
A --- C(( ))
A --- D(( ))
A --- E(( ))
A --- F(( ))
C --- G(( ))
D --- H(( ))
D --- J(( ))
E --- I(( ))
E --- K(( ))
E --- L(( ))
F --- M(( ))
F --- N(( ))
F --- O(( ))
F --- P(( ))
J --- Q(( ))
K --- R(( ))
L --- S(( ))
L --- T(( ))
N --- U(( ))
O --- V(( ))
O --- W(( ))
P --- X(( ))
P --- Y(( ))
P --- Z(( ))
T --- a(( ))
W --- b(( ))
Y --- c(( ))
Z --- d(( ))
Z --- e(( ))
e --- f(( ))
classDef zero fill:LightCoral
classDef one fill:SpringGreen
classDef two fill:SkyBlue
classDef three fill:MediumPurple
classDef four fill:#b666d2
class A zero
class B,C,D,E,F one
class G,H,J,I,K,L,M,N,O,P two
class Q,R,S,T,U,V,W,X,Y,Z three
class a,b,c,d,e four
</figcaption>
A --- B((1))
A --- C((2))
A --- D((4))
A --- E((8))
C --- F((3))
D --- G((5))
D --- H((6))
E --- J((9))
E --- I((10))
E --- K((12))
H --- L((7))
I --- M((11))
K --- N((13))
K --- O((14))
O --- P((15))
classDef zero fill:LightCoral
classDef one fill:SpringGreen
classDef two fill:SkyBlue
classDef three fill:MediumPurple
classDef four fill:#b666d2
class A zero
class B,C,D,E one
class F,G,H,J,I,K two
class L,M,N,O three
class P four
</figcaption>
Left-Child, Right-Sibling (LCRS)
A --> B(( ))
B -.-> C(( ))
C -.-> D(( ))
D -.-> E(( ))
C --> F(( ))
D --> G(( ))
G -.-> H(( ))
E --> J(( ))
J -.-> I(( ))
I -.-> K(( ))
H --> L(( ))
I --> M(( ))
K --> N(( ))
N -.-> O(( ))
O --> P(( ))
classDef zero fill:LightCoral
classDef one fill:SpringGreen
classDef two fill:SkyBlue
classDef three fill:MediumPurple
classDef four fill:#b666d2
class A zero
class B,C,D,E one
class F,G,H,J,I,K two
class L,M,N,O three
class P four
</figcaption>
Left-Child, Right-Sibling (LCRS)
A --> B(( ))
B -.-> C(( ))
C -.-> D(( ))
D -.-> A
C --> E(( ))
E -.-> C
D --> F(( ))
F -.-> G(( ))
G -.-> D
G --> H(( ))
H -.-> G
classDef zero fill:LightCoral
classDef one fill:SpringGreen
classDef two fill:SkyBlue
classDef three fill:MediumPurple
class A zero
class B,C,D one
class E,F,G two
class H three
</figcaption>
</figcaption>
</figcaption>
</figcaption>
</figcaption>
</figcaption>
</figcaption>
</figcaption>
Слияние двух деревьев операция константной сложности:
Слияние двух лесов из \(n\) и \(m\) элементов равна \(O(\log \max (n, m))\).
Учётная стоимость вставки равна \(O(1)\).
</figcaption>
</figcaption>
classDef zero opacity:0.3,fill:LightCoral
class O,U,Y,a zero
classDef one fill:SpringGreen
class G,J,K,M,N,P,Q,R,S,T,V,W,X,Z one
classDef two fill:SkyBlue
class C,E,F,H,I,L two
classDef three fill:MediumPurple
class A,B,D three
</figcaption>
</figcaption>
Также будем обозначать через \(x(A, B)\) дерево с корнем в вершине \(x\) с двумя поддеревьями: \(A\) и \(B\), левым и правым соответственно.
</figcaption>
\begin{gathered}
\meld(A, \varnothing) = \meld(\varnothing, A) = A,\\
\\
\\
\meld(x(A, B), y(C, D)) = \begin{cases}
x(A, \meld(B, y(C, D))), &\text{если } x \leqslant y;\\
y(C, \meld(D, x(A, B))), &\text{иначе}.
\end{cases}
\end{gathered}
]
</figcaption>
</figcaption>
</figcaption>
</figcaption>
Косые кучи
Рандомизированные кучи