Árvores 2-3

Livro de Sedgewick e Wayne: sec.3.3, p.424.  Website do livro: resumo sec.3.3, slides.  Código fonte, documentação, e dados de teste de todos os programas do livro: veja algs4.cs.​princeton.edu/​code/.

Como implementar uma tabela de símbolos em uma BST de modo que a árvore permaneça aproximadamente balanceada  (ou seja, tenha altura próxima de lg N, sendo N o número de nós)  qualquer que seja a sequência de buscas e inserções aplicada à árvore?  Esta página mostra como árvores 2-3 resolvem o problema em princípio. A implementação da ideia, usando árvores rubro-negras, será discutida na próxima página.

Destaques:

Pré-requisitos:

Árvores 2-3 de busca

Exercícios 1

  1. Quantas chaves, no máximo, pode conter uma árvore 2-3 de altura 2? Qual o número mínimo de chaves em uma árvore 2-3 de altura 2?

Busca em árvore 2-3

Inserção em árvore 2-3

Exercícios 2

  1. (SW 3.3.1)  Desenhe a árvore 2-3 que resulta da inserção das chaves E A S Y Q U T I O N, nesta ordem, em uma árvore inicialmente vazia.
  2. (SW 3.3.2)  Desenhe a árvore 2-3 que resulta da inserção das chaves Y L P M X H C R A E S nesta ordem, em uma árvore inicialmente vazia.
  3. (SW 3.3.3)  Encontre uma ordem de inserção para as chaves S E A R C H X M que resulte em uma árvore 2-3 de altura 1.

Desempenho de pior caso

Exercícios 3

  1. (SW 3.3.4)  Mostre que a altura de uma árvore 2-3 fica entre algo próximo de ⌊log3 N e algo próximo de ⌊lg N.
  2. Qual a altura de uma árvore 2-3 que tem 1 bilhão de chaves?

Implementação

Exercícios 4

  1. (SW 3.3.35)  Escreva um programa TwoThreeST.java que use dois tipos de nós para implementar árvores 2-3 diretamente.

Resumo das 4 implementações de TSs vistas até aqui