A Arvore Binaria Balanceada
Por: inutil inutil • 22/9/2022 • Trabalho acadêmico • 470 Palavras (2 Páginas) • 111 Visualizações
class NoArvoreBinaria:
def __init__(self, data):
self.data = data
self.filhoEsquerda = None
self.filhoDireita=None
def inserir(raiz,novoValor):
# Se a árvore de busca binária estiver vazia, crie um novo nó e declare-o como raiz
if raiz is None:
raiz=NoArvoreBinaria(novoValor)
return raiz
# Árvore de busca binária não está vazia, então inserir na árvore
# Se novoValor for menor que o valor dos dados na raiz, adicione-o à subárvore esquerda e continue recursivamente
if novoValor<raiz.data:
raiz.filhoEsquerda=inserir(raiz.filhoEsquerda,novoValor)
else:
#se novoValor for maior que o valor dos dados na raiz, adicione-o à subárvore direita e prossiga recursivamente
raiz.filhoDireita=inserir(raiz.filhoDireita,novoValor)
return raiz
def altura(raiz):
# Se raiz for None retornar 0
if raiz==None:
return 0
# Encontrar altura da subárvore esquerda
alturaEsquerda=altura(raiz.filhoEsquerda)
# Encontre a altura da subárvore direita
alturaDireita=altura(raiz.filhoDireita)
# encontre max de alturaEsquerda e alturaDireita, adicione 1 a ele e retorne o valor
if alturaEsquerda>alturaDireita:
return alturaEsquerda+1
else:
return alturaDireita+1
def ChecarArvoreBinariaBalanceada(raiz):
# Se a árvore estiver vazia, retorne True
if raiz==None:
return True
# Checar altura da subárvore esquerda
alturaEsquerda= altura(raiz.filhoEsquerda)
alturaDireita = altura(raiz.filhoDireita)
...