Lab 11 - Arboles Binarios

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

Algoritmos y Estructuras de Datos

LABORATORIO N° 11

Arboles binarios de búsqueda

DESARROLLO DE SOFTWARE Ing. Jaime Farfán


PROGRAMA DE FORMACIÓN REGULAR jfarfan@tecsup.edu.pe
Laboratorio de Algoritmos y Estructuras de Datos
Página 2 de 4

CODIGO DEL CURSO:

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.

III.- FUNDAMENTO TEÓRICO:


 Revisar el texto guía que está en el campus Virtual.

IV.- NORMAS EMPLEADAS:


 No aplica

V.- RECURSOS:
 En este laboratorio cada alumno trabajará con un equipo con Windows 10.

VI.- METODOLOGÍA PARA EL DESARROLLO DE LA TAREA:


 El desarrollo del laboratorio es individual.

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

Pasos : 1.- Construir el arbol


2.- Cálcular la suma de todos los nodos

2.- Ejercicio : Dado las condiciones


 ? es el signo de sumar
 ¿ es el signo para restar
 [ ] son corchetes

realizar: [3?4]¿[5?3]
cadena ingreso = "[3?4]¿[5?3]"

3.- Creación de un árbol binario de búsqueda

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

4.- Búsqueda de un valor : Búscar el valor 4? , 10?

def find(root, data):


'''
Method to find data in BST
Rparam root:
:return:
'''
currentNode = root

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)

def findIterative(root, data):


'''
Method to find data in BST
Iterative mode
:param root:
:return:
'''
currentNode = root
while currentNode:
if data == currentNode.data:
return currentNode
if data < currentNode.data:
currentNode = currentNode.left
else:
currentNode = currentNode.right

return None

5.- Búsqueda del menor valor

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

6.- Búsqueda del mayor valor

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.

También podría gustarte