Rede de árvores binárias de busca com herança e polimorfismo
Python
Hard
classes
Tarefa «Rede de árvores binárias de busca com herança e polimorfismo»
Implemente a classe Node para um nó de árvore binária de busca (BST) com os métodos insert, search, delete. Crie a classe BST, que armazena a raiz e contém os métodos insert (inserir valor), search (buscar valor, retorna True/False), delete (remover valor) e get_height (altura da árvore). Em seguida, crie a classe AVLTree, que herda de BST, sobrescrevendo insert e delete para suportar balanceamento (com rotações). Dados de entrada: sequência de comandos. Comandos: "insert x" para inserir x, "delete x" para remover x (se existir), "search x" para exibir "found" ou "not found", "height" para exibir a altura da árvore. Para AVLTree, após cada inserção/remoção, verifica-se o balanço (diferença de altura das subárvores <= 1) e realiza-se a rotação correspondente. Restrições: -10^9 <= x <= 10^9, número de comandos até 10^5.
Formato de Entrada
A primeira linha: um número inteiro n (1 <= n <= 10^5) — a quantidade de comandos. Em seguida, n linhas, cada uma contendo um comando: insert x, delete x, search x ou height.
Formato de Saída
Para cada comando search, exiba "found" ou "not found" em uma linha separada. Para o comando height, exiba um número inteiro — a altura da árvore (altura da árvore vazia = 0).
Exemplos
Exemplo 1
ENTRADA
3
1 2 -3 4
-1 -2
5 0 3
SAÍDA
Exemplo 2
ENTRADA
2
0 0 0
2 -2 2 -2
SAÍDA
main.py