Вы находитесь на странице: 1из 7

#!

/usr/bin/env python
# coding: utf-8

# In[ ]:

#
# arvores binarias
#
import os
os.system("clear")

class Noh: #definição da classe Nó


dado,esquerdo,direito = 0,None,None
def __init__(self, dado):
self.esquerdo = None
self.direito = None
self.dado = dado
def __str__(self):
return "{",str(dado),"}"

# fim da classe Noh

class ArvoreBinaria: # Definição da classe árvore


def __init__(self):
self.raiz = None # inicializa a raiz
def criaNoh(self, dado): # cria um novo noh e o retorna
return Noh(dado)
def insere(self, raiz, dado): # insere um novo dado
if raiz == None: # arvore vazia
return self.criaNoh(dado)
else:
if dado <= raiz.dado:
raiz.esquerdo = self.insere(raiz.esquerdo, dado)
else:
raiz.direito = self.insere(raiz.direito, dado)
return raiz

def insere(self, raiz, dado): # insere um novo dado


if raiz == None: # arvore vazia
return self.criaNoh(dado)
else:
if dado <= raiz.dado:
raiz.esquerdo = self.insere(raiz.esquerdo, dado)
else:
raiz.direito = self.insere(raiz.direito, dado)
return raiz

def insere100(self): # insere 100 dados


valorRaiz = 50
i = 1
while i < 101:
ArvoreBin.insere(raiz, i)
i += 1

def insere500(self): # insere 500 dados


valorRaiz = 250
i = 1
while i < 501:
ArvoreBin.insere(raiz, i)
i += 1

def insere1000(self): # insere 1000 dados


valorRaiz = 500
i = 1
while i < 1001:
ArvoreBin.insere(raiz, i)
i += 1

def insere10000(self): # insere 10000 dados


valorRaiz = 5000
i = 1
while i < 10001:
ArvoreBin.insere(raiz, i)
i += 1

def pesquisa(self, raiz, valor): # Pesquisa um valor na árvore


if raiz == None:
return 0
else:

if valor == raiz.dado:
return 1
else:
if valor < raiz.dado:
return self.pesquisa(raiz.esquerdo, valor)
else:
return self.pesquisa(raiz.direito, valor)

def imprimirArvore(self, raiz): # imprime a árvore


if raiz == None:
pass
else:
self.imprimirArvore(raiz.esquerdo)
print("{",raiz.dado,"}", end=' ')
self.imprimirArvore(raiz.direito)
def imprimeArvoreInvertida(self, raiz): # imprime a árvore invertida
if raiz == None:
pass
else:
self.imprimeArvoreInvertida(raiz.direito)
print("{",raiz.dado,"}", end=' ')
self.imprimeArvoreInvertida(raiz.esquerdo)
def imprimeNohs(self,raiz):
if raiz == None: return
a = raiz.dado
if raiz.esquerdo != None:
b = raiz.esquerdo.dado
else:
b = None
if raiz.direito != None:
c = raiz.direito.dado
else:
c = None
print("{",a,"[",b,",",c,"]","}", end=' ')
self.imprimeNohs(raiz.esquerdo)
self.imprimeNohs(raiz.direito)

# Cria a árvore binária


ArvoreBin = ArvoreBinaria()
# Adiciona o nó raiz
raiz = ArvoreBin.criaNoh(valorRaiz)
while True:
os.system("clear")
print("Menu da árvore")
print("<1> Árvore de 100 elementos")
print("<2> Árvore de 500 elementos")
print("<3> Árvore de 1000 elementos")
print("<4> Árvore de 10000 elementos")
print("<5> Imprimir")
print("<6> Pesquisar na árvore")
print("<7> Sair")
resposta = input("\nDigite a sua escolha e pressione ENTER ")
if resposta == "7":
break
elif resposta == "1":
ArvoreBin.insere100()
elif resposta == "2":
ArvoreBin.insere500()
elif resposta == "3":
ArvoreBin.insere1000()
elif resposta == "4":
ArvoreBin.insere10000()
elif resposta == "5":
print("\nImpressão na forma de lista ", end=' ')
ArvoreBin.imprimirArvore(raiz)
print("\nImpressão na forma de lista invertida: ", end=' ')
ArvoreBin.imprimeArvoreInvertida(raiz)
print("\nImpressão por nós : ", end=' ')
ArvoreBin.imprimeNohs(raiz)
input("\nPressione ENTER para continuar ")
elif resposta =="6":
dado = int(input("\nDigite um valor para encontrar: "))
if ArvoreBin.pesquisa(raiz, dado):
print("Encontrado")
else:
print("não encontrado")
input("\nPressione ENTER para continuar ")

# fim do programa

# In[ ]:

# In[ ]:
# In[ ]:

#!/usr/bin/env python
# coding: utf-8

# In[ ]:

#
# arvores binarias
#
import os
os.system("clear")

class Noh: #definição da classe Nó


dado,esquerdo,direito = 0,None,None
def __init__(self, dado):
self.esquerdo = None
self.direito = None
self.dado = dado
def __str__(self):
return "{",str(dado),"}"

# fim da classe Noh

class ArvoreBinaria: # Definição da classe árvore


def __init__(self):
self.raiz = None # inicializa a raiz
def criaNoh(self, dado): # cria um novo noh e o retorna
return Noh(dado)
def insere(self, raiz, dado): # insere um novo dado
if raiz == None: # arvore vazia
return self.criaNoh(dado)
else:
if dado <= raiz.dado:
raiz.esquerdo = self.insere(raiz.esquerdo, dado)
else:
raiz.direito = self.insere(raiz.direito, dado)
return raiz

def insere(self, raiz, dado): # insere um novo dado


if raiz == None: # arvore vazia
return self.criaNoh(dado)
else:
if dado <= raiz.dado:
raiz.esquerdo = self.insere(raiz.esquerdo, dado)
else:

#!/usr/bin/env python
# coding: utf-8

# In[ ]:

#
# arvores binarias
#
import os
os.system("clear")
class Noh: #definição da classe Nó
dado,esquerdo,direito = 0,None,None
def __init__(self, dado):
self.esquerdo = None
self.direito = None
self.dado = dado
def __str__(self):
return "{",str(dado),"}"

# fim da classe Noh

class ArvoreBinaria: # Definição da classe árvore


def __init__(self):
self.raiz = None # inicializa a raiz
def criaNoh(self, dado): # cria um novo noh e o retorna
return Noh(dado)
def insere(self, raiz, dado): # insere um novo dado
if raiz == None: # arvore vazia
return self.criaNoh(dado)
else:
if dado <= raiz.dado:
raiz.esquerdo = self.insere(raiz.esquerdo, dado)
else:
raiz.direito = self.insere(raiz.direito, dado)
return raiz

def insere(self, raiz, dado): # insere um novo dado


if raiz == None: # arvore vazia
return self.criaNoh(dado)
else:
if dado <= raiz.dado:
raiz.esquerdo = self.insere(raiz.esquerdo, dado)
else:

#!/usr/bin/env python
# coding: utf-8

# In[ ]:

#
# arvores binarias
#
import os
os.system("clear")

class Noh: #definição da classe Nó


dado,esquerdo,direito = 0,None,None
def __init__(self, dado):
self.esquerdo = None
self.direito = None
self.dado = dado
def __str__(self):
return "{",str(dado),"}"

# fim da classe Noh

class ArvoreBinaria: # Definição da classe árvore


def __init__(self):
self.raiz = None # inicializa a raiz
def criaNoh(self, dado): # cria um novo noh e o retorna
return Noh(dado)
def insere(self, raiz, dado): # insere um novo dado
if raiz == None: # arvore vazia
return self.criaNoh(dado)
else:
if dado <= raiz.dado:
raiz.esquerdo = self.insere(raiz.esquerdo, dado)
else:
raiz.direito = self.insere(raiz.direito, dado)
return raiz

def insere(self, raiz, dado): # insere um novo dado


if raiz == None: # arvore vazia
return self.criaNoh(dado)
else:
if dado <= raiz.dado:
raiz.esquerdo = self.insere(raiz.esquerdo, dado)
else:

#!/usr/bin/env python
# coding: utf-8

# In[ ]:

#
# arvores binarias
#
import os
os.system("clear")

class Noh: #definição da classe Nó


dado,esquerdo,direito = 0,None,None
def __init__(self, dado):
self.esquerdo = None
self.direito = None
self.dado = dado
def __str__(self):
return "{",str(dado),"}"

# fim da classe Noh

class ArvoreBinaria: # Definição da classe árvore


def __init__(self):
self.raiz = None # inicializa a raiz
def criaNoh(self, dado): # cria um novo noh e o retorna
return Noh(dado)
def insere(self, raiz, dado): # insere um novo dado
if raiz == None: # arvore vazia
return self.criaNoh(dado)
else:
if dado <= raiz.dado:
raiz.esquerdo = self.insere(raiz.esquerdo, dado)
else:
raiz.direito = self.insere(raiz.direito, dado)
return raiz
def insere(self, raiz, dado): # insere um novo dado
if raiz == None: # arvore vazia
return self.criaNoh(dado)
else:
if dado <= raiz.dado:
raiz.esquerdo = self.insere(raiz.esquerdo, dado)
else:

Вам также может понравиться