Lab 11 - Arboles Binarios
Lab 11 - Arboles Binarios
Lab 11 - Arboles Binarios
LABORATORIO N° 11
Alumno(s) Nota
Grupo
Ciclo I
Fecha de entrega
I.- OBJETIVOS:
Definir las reglas básicas a seguir para la construcción y la correcta interpretación de los Diagramas de
Flujo, resaltando las situaciones en que pueden, o deben, ser utilizados.
Elaborar y Diseñar algoritmos con arreglos de una sola dimensión(unidimensional) denominada vectores
II.- SEGURIDAD:
Advertencia:
En este laboratorio está prohibida la manipulación del
hardware, conexiones eléctricas o de red; así como la
ingestión de alimentos o bebidas.
V.- RECURSOS:
En este laboratorio cada alumno trabajará con un equipo con Windows 10.
VII.- PROCEDIMIENTO:
EJERCICIO DE APLICACIÓN
1.- Ejercicio: Dado un arbol binario de nivel 3, obtener la suma de los datos de cada nodo usando el
método recursivo
11
/\
/ \
13 6
/\ /\
21 2 14 5
realizar: [3?4]¿[5?3]
cadena ingreso = "[3?4]¿[5?3]"
class BSTNode:
'''
Node BST definition
'''
def __init__(self, data):
self.left = None
self.right = None
self.data = data
Dado el árbol mostrado, hacer las modificaciones para generar un árbol binario manualmente, para
realizar búsquedas
#
# 2
# / \
# / \
# 3 4
# / \ /\
# 5 6 7 8
#
Una vez ordenado el árbol binario para búsquedas, crear el árbol con código Python
if currentNode == None:
return None
else:
if data == currentNode.data:
return currentNode
if data < currentNode.data:
return find(currentNode.left,data)
else:
return find(currentNode.right,data)
return None
def findMin(root):
'''
Find the minimum value. Recursive mode
:param root:
:return:
'''
currentNode = root
if currentNode.left == None:
return currentNode
else:
return findMin(currentNode.left)
def findMinIterative(root):
'''
Find the minimum value. Iterative mode
:param root:
:return:
'''
currentNode = root
while currentNode.left != None:
currentNode = currentNode.left
return currentNode
def findMax(root):
'''
Find the maximum value. Recursive mode
:param root:
:return:
'''
currentNode = root
if currentNode.right == None:
return currentNode
else:
return findMax(currentNode.right)
def findMaxIterative(root):
'''
Find the maximum value. Iterative mode
:param root:
:return:
'''
currentNode = root
while currentNode.right != None:
currentNode = currentNode.right
return currentNode
CONCLUSIONES:
1.
2.
3.