You are on page 1of 4

class ArbolB:

__Raiz= None
__n = None

def __init__(self):
self.__Raiz = None
self.__n = 0

def isEmpty(self):
if self.__Raiz == None:
return True
else:
return False

def add(self, x):


if self.isEmpty():
self.__Raiz = Nodo(x)
else:
act = self.__Raiz
ant = None
while act != None:
ant = act
if act.get_data() > x:
act = act.get_HI()
else:
act = act.get_HD()

if ant.get_data() > x:
nodo = Nodo(x)
ant.set_HI(nodo)
else:
nodo = Nodo(x)
ant.set_HD(nodo)

def insertarIterativo(self, x):


if (self.__Raiz == None):
self.__Raiz = Nodo(x)
return True
pr = self.__Raiz
ant = None
while (pr != None):

if (x > pr.get_data()):
ant = pr
pr = pr.get_HD()
else:
if (x < pr.get_data()):
ant = pr
pr = pr.get_HI()
else:
return False

nuevoNodo = Nodo(x)

if (x > ant.get_data()):
ant.set_HD(nuevoNodo)

if (x < ant.get_data()):
ant.set_HI(nuevoNodo)

return True

# 1. IN ORDEN
def inOrden(self):
self.__inOrden(self.__Raiz)

def __inOrden(self, p):


if p == None:
return
self.__inOrden(p.get_HI())
print(p.get_data())
self.__inOrden(p.get_HD())

# PREORDEN
def preOrden(self):
self.__preOrden(self.__Raiz)

def __preOrden(self, p):


if p == None:
return
else:
print(p.get_data())
self.__preOrden(p.get_HI())
self.__preOrden(p.get_HD())

class Nodo:
__data = None
__HI = None
__HD = None
def __init__(self, data):
self.__data = data
self.__HI = None
self.__HD = None

def get_data(self):
return self.__data

def set_data(self, data):


self.__data = data

def get_HI(self):
return self.__HI

def set_HI(self, HI):


self.__HI = HI

def get_HD(self):
return self.__HD

def set_HD(self, HD):


self.__HD = HD

from Arbolbinario import ArbolB

A = ArbolB()

"""A.insertarIterativo(100)
A.insertarIterativo(50)
A.insertarIterativo(150)
A.insertarIterativo(60)
A.insertarIterativo(55)
A.insertarIterativo(70)
A.insertarIterativo(120)
A.insertarIterativo(140)"""

print(A.insertarIterativo[100])
print(A.insertarIterativo[50])
print(A.insertarIterativo[150])
print(A.insertarIterativo[60])
print(A.insertarIterativo[55])
print(A.insertarIterativo[70])
print(A.insertarIterativo[120])
print(A.insertarIterativo[140])

print("Mostrar InOnrden")

A.inOrden()
print("Mostrar preOrden")
A.preOrden()
print("Mostrar preOrden")
A.postOrden()

You might also like