Softwares e sistemas
Trabalho Prático - AVL
Nesse trabalho você deverá implementar uma árvore AVL, para armazenar registros
contendo chave e nome. Você deverá implementar as seguintes operações: inserção,
remoção, consulta por chave e impressão in-order (de chave), além de uma operação que
verifica o balanceamento da árvore.
Seu programa deve ler da entrada padrão do sistema os comandos, e deverá imprimir
apenas na operação de consulta, impressão e verificação. Suponha então que o usuário
queira inserir 2 registros, Joao e Maria que tem chaves 7 e 3 respectivamente, ele irá
digitar:
i 7 Joao
i 3 Maria
Suponha que o usuário queira então consultar pela chave 4:
c 4
Como nesse exemplo não temos um registro com a chave 4, seu programa não imprime
nada, se a consulta for feita pela chave 3 por exemplo, seu programa deve imprimir:
3 Maria
Para a impressão in-order o usuário digitará:
p
E nesse exemplo o programa vai imprimir:
3 Maria
7 Joao
Para remover o registro 3 o usuário digitará:
r 3
A qualquer momento o usuário pode digitar o comando de verificação, e você deverá
verificar se em todos os nós o fator de balanceamento é -1, 0 ou 1. E seu programa
imprimirá SIM se tiver e NAO caso contrário. Por exemplo o usuário digita:
v
E depois de uma verificação, seu programa deve imprimir:
SIM
Por fim o comando ‘x’ encerra o programa. Um exemplo completo de entrada seria:
i 10 Pedro
i 11 Abel
i 5 Bob
c 6
c 11
v
r 10
v
p
x
E a saída esperada para essa entrada seria:
11 Abel
SIM
SIM
5 Bob
11 Abel
Você conhece alguém que se encaixa bem no projeto? Ganhe comissão indicando freelancers! Por cada inscrição você ganha 5 € diretamente na sua conta e quando o freelancer é contratado pela plataforma você ganha 2% dos ganhos deste freelancer!
Preencha os detalhes do profissional que você gostaria de recomendar:
Quando o freelancer aceitar o convite, ele será automaticamente adicionado à sua rede e você ganhará 2% a mais todos os ganhos deste freelancer através da plataforma. Para mais informações consulte nosso Termos e Condições
Nenhum freelancer interessado ainda
{{item.displayDisciplines}}
Você tem uma conta stand-by e já respondeu a 1 projeto neste período de assinatura.
Atualize sua conta agora com apenas 1 clique e responda a projetos ilimitados.