-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathArbol.py
41 lines (37 loc) · 1.33 KB
/
Arbol.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from Persona import *
# Clase arbol
class Arbol():
# Constructores de Nodo
def __init__(self) -> None:
self.dato = None
self.subArbolDerecho = None
self.subArbolIzquierdo = None
# Metodos Adicionales
def EstaVacio(self):
return self.dato == None
def Agregar(self, dato):
if(self.EstaVacio()):
self.dato = dato
else:
# Determinar en que direccion se agrega
if(self.dato.get_dni() < dato.get_dni()):
# Agregar en la derecha
if(self.subArbolDerecho == None):
self.subArbolDerecho = Arbol()
self.subArbolDerecho.Agregar(dato)
else:
self.subArbolDerecho.Agregar(dato)
else:
# Agregar en la izquierda
if(self.subArbolIzquierdo == None):
self.subArbolIzquierdo = Arbol()
self.subArbolIzquierdo.Agregar(dato)
else:
self.subArbolIzquierdo.Agregar(dato)
def PreOrden(self): # Raiz - Izq - Der
if(not(self.EstaVacio())):
print(self.dato)
if(self.subArbolIzquierdo != None):
self.subArbolIzquierdo.PreOrden()
if(self.subArbolDerecho != None):
self.subArbolDerecho.PreOrden()