Este projeto implementa uma Árvore AVL em TypeScript com uma interface interativa no terminal. A Árvore AVL é uma estrutura de dados auto-balanceada que garante operações eficientes de inserção, busca, remoção e percursos ordenados.
- Inserção: Adiciona um novo elemento à árvore mantendo o balanceamento AVL.
- Busca: Permite buscar por um valor específico na árvore.
- Remoção: Remove um elemento da árvore, ajustando automaticamente o balanceamento.
- Percursos Ordenados:
- Pré-Ordem: Percorre a árvore visitando o nó antes de seus filhos.
- Em-Ordem: Percorre a árvore visitando os filhos à esquerda, o nó, e depois os filhos à direita.
- Pós-Ordem: Percorre a árvore visitando os filhos antes do nó.
Para executar o projeto, siga os passos abaixo:
- Clone o repositório:
git clone https://github.com/pivattogui/avl-tree.git
- Acesse o diretório do projeto:
cd avl-tree
- Instale as dependências:
npm install
- Execute o projeto:
npm start
Durante a execução do projeto, você pode utilizar os seguintes comandos:
i <valor>
: Insere um novo elemento na árvore.b <valor>
: Busca por um valor na árvore.r <valor>
: Remove um valor da árvore.pre
: Percorre a árvore em pré-ordem.em
: Percorre a árvore em ordem.pos
: Percorre a árvore em pós-ordem.
$ npm run start
> i 10
> i 20
> i 15
> i 25
> i 30
> i 40
> b 15
[🔎] Nó encontrado: [Valor:15, Nível: 2]
> r 15
[🗑️] Nó removido
> b 15
[❌] Nó não encontrado
> pre
25>20>10>30>40
> pos
10>20>40>30>25
> em
10>20>25>30>40