Skip to content

An AVL Tree implementation in TypeScript with efficient operations and a terminal interface.

Notifications You must be signed in to change notification settings

pivattogui/avl-tree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Árvore AVL em TypeScript

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.

Funcionalidades

  • 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ó.

Execução

Para executar o projeto, siga os passos abaixo:

  1. Clone o repositório:
git clone https://github.com/pivattogui/avl-tree.git
  1. Acesse o diretório do projeto:
cd avl-tree
  1. Instale as dependências:
npm install
  1. Execute o projeto:
npm start

Comandos

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.

Exemplo de uso:

$ 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

About

An AVL Tree implementation in TypeScript with efficient operations and a terminal interface.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published