Árvores AVL e vermelho-pretas

Rotações que conservam a ordem e invariantes que limitam a altura.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Rodar sem trocar ordem

Rotação troca pai e filho e move a subárvore do meio. Em-ordem conserva-se. Custa O(1)O(1).

Rodar conservando a ordem. y sobe e z desce. A subárvore B passa para a esquerda de z.

Atualiza a antiga raiz antes da nova e religa ao pai.

AVL pelo fator

Com vazio de altura -1, cada nó tem b=he−hdb=h_e-h_d em -1,0,1.

FatorFilho pesadoRepara com
2Esquerda-esquerdaDireita no nó
2Esquerda-direitaEsquerda no filho e direita no nó
-2Direita-direitaEsquerda no nó
-2Direita-esquerdaDireita no filho e esquerda no nó

Exterior pede rotação simples; interior pede rotação dupla. Na inserção, repara o primeiro nó desequilibrado a subir. Na remoção, verifica todos os antepassados: quando o filho tem fator 0, a rotação simples correspondente também repõe o equilíbrio, mas a altura da subárvore não diminui.

O número mínimo de nós de uma AVL de altura h segue N(h)=1+N(h−1)+N(h−2)N(h)=1+N(h-1)+N(h-2), com N(−1)=0N(-1)=0 e N(0)=1N(0)=1. Daqui resulta altura O(log⁡n)O(\log n).

Vermelho-pretas em quatro casos

Raiz e NIL pretos, sem vermelhos seguidos, mesma altura preta em todos os caminhos. Altura até 2log⁡2(n+1)2\log_2(n+1).

Inserir vermelho como numa BST e depois:

Pai e tioConfiguraçãoAção
Pai pretoQualquerNada
Ambos vermelhosQualquerRecolore e sobe
Pai vermelho, tio pretoExteriorRoda no avô e troca cores
Pai vermelho, tio pretoInteriorRoda no pai e cai no caso anterior

Pinta a raiz de preto no fim. Remoção de preto pode exigir reparação longa; estas notas não substituem a receita completa.

Provas e código.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.