árvore binária
simulador
nós
0
altura
0
folhas
0
editor python
1
class No: def __init__(self, valor): self.valor = valor self.esq = None self.dir = None class ArvoreBinaria: def __init__(self): self.raiz = None def inserir(self, valor): if not self.raiz: self.raiz = No(valor) else: self._inserir(self.raiz, valor) def _inserir(self, no, valor): if valor < no.valor: if no.esq is None: no.esq = No(valor) else: self._inserir(no.esq, valor) elif valor > no.valor: if no.dir is None: no.dir = No(valor) else: self._inserir(no.dir, valor) def buscar(self, valor): return self._buscar(self.raiz, valor) def _buscar(self, no, valor): if no is None: return False if valor == no.valor: return True elif valor < no.valor: return self._buscar(no.esq, valor) else: return self._buscar(no.dir, valor) def remover(self, valor): self.raiz = self._remover(self.raiz, valor) def _remover(self, no, valor): if no is None: return None if valor < no.valor: no.esq = self._remover(no.esq, valor) elif valor > no.valor: no.dir = self._remover(no.dir, valor) else: if no.esq is None: return no.dir elif no.dir is None: return no.esq sucessor = no.dir while sucessor.esq: sucessor = sucessor.esq no.valor = sucessor.valor no.dir = self._remover(no.dir, sucessor.valor) return no arvore = ArvoreBinaria() arvore.inserir(50) arvore.inserir(30) arvore.inserir(70) arvore.inserir(20) arvore.inserir(40) arvore.inserir(60) arvore.inserir(80)
+ inserir
− remover
⌕ buscar
▶ executar
limpar
exemplo
raiz
nó
folha
visualização
−
100%
+
⤢
execute o código para visualizar a árvore
percurso:
em-ordem
pré-ordem
pós-ordem