You are on page 1of 3

UNIVERSIDAD AUTÓNOMA

GABRIEL RENÉ MORENO


Facultad de Ingeniería en Ciencias de la
Computación y Telecomunicaciones

Elaborar un ADT de Árbol Binario

NOMBRE: ALEX CARDONA CHAVEZ

MATERIA: ESTRUCTURA DE DATOS 2

DOCENTE: ING. JUAN CARLOS PEINADO


#clase Nodo y constructores
class Nodo:
#Metodo que permite crear un objeto de la clase Nodo con un valor
en este caso Nulo
def __init__(self, valor):
self.HI = None #inicializa el HI con un valor
nulo
self.HD = None #inicializa el HD con un valor
nulo
self.data = valor #inicializa data con el valor
asignado

#Metodos get
def getDato(self):
return self.data

def getHI(self):
return self.HI

def getHD(self):
return self.HD

#Meodos set
def setDato(self, valor):
self.data = valor

def setHI(self, HI):


self.HI = HI

def setHD(self, HD):


self.HD = HD

class Arbol:
#Metodo que permite crear un objeto raiz de la clase Arbol con un
valor nulo
def __init__(self):
self.raiz = None

#Metodo que permite insertar un Nodo cargado con un valor en el Arbol


def insertar(self, valor):
if (self.raiz == None):
self.raiz = Nodo(valor)
return
else:
nodoActual = self.raiz
nodoAnt = None
while (nodoActual != None):
nodoAnt = nodoActual
if (valor < nodoActual.getDato()):
nodoActual = nodoActual.getHI()
else:
if ( valor > nodoActual.getDato()):
nodoActual = nodoActual.getHD()
else:
return
nodoAux = None
nodoAux = Nodo(valor)
if (valor < nodoAnt.getDato()):
nodoAnt.setHI(nodoAux)
else:
nodoAnt.setHD(nodoAux)

def inOrden(self, nodoActual):


if (nodoActual != None):
self.inOrden(nodoActual.HI)
print(nodoActual.data)
self.inOrden(nodoActual.HD)

def main():
A = Arbol()
A.insertar(8)
A.insertar(3)
A.insertar(10)
A.insertar(1)
A.insertar(6)
A.insertar(14)
A.insertar(4)
A.insertar(7)
A.insertar(13)
A.inOrden(A.raiz)

#InOrden 1-3-4-6-7-8-10-13-14

main()

You might also like