2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
Examen una unidad
1. Introducción a la Informática 1
Fecha de Recepción: (Letra Times NewRomande 8 puntos)
Fecha de Aceptación: Dejar en blanco
Recursividad
Recursiveness
Wilson Henao Arias
Risaralda, Universidad Tecnológica de Pereira, Pereira, Colombia
Wilson.henao@utp.edu.co
Resumen— En el presente documento lo que se va a realizar es
una explicación del tema recursividad en base a un árbol binario.
Palabras clave— Recursividad, árbol binario, nodo, algoritmo
Abstract— In this document what is going to be done is an
explanation of the recursion theme based on a binary tree.
Key Word — Recursion, binary tree, node, algorithm
I. INTRODUCCIÓN
A continuación en el presente documento se realizará
explicación sobre la recursividad en base a un árbol binario, al
cual lo vamos a recorrer, lo vamos a imprimir, y vamos a tratar
de encontrar un dato con dos algoritmos ya inicialmente
realizados.
II. CONTENIDO
Árbol binario
La imagen anterior es el árbol binario que utilizaremos, para
realizar la explicación sobre la recursividad, allí podemos
lograr ver algunos conceptos referentes para poder explicar la
recursividad y algunos algoritmos.
Cabeza (cabeza): Es el nodo con el cuál se inicia el árbol
binario, para el árbol binario en cuestión, la cabeza contiene el
dato N° 8.
N (n): Éste hace referencia a cada uno de los nodos que se
encuentran en el árbol, en este caso 9 nodos.
N.dato (n.dato): Éste hace referencia al valor que contiene cada
nodo.
N.der (n.der): Éste hace referencia al nodo pero en ubicación a
la derecha del nodo al cuál se desprende.
N.izq (n.izq): Éste hace referencia al nodo pero en ubicación a
la izquierda del nodo al cuál se desprende.
NULL: Éste hace referencia a que allí no hay nada, está vacio.
Primer código a explicar.
Algoritmo: recorrer árbol
funcion recorrer(n)
{
si n==NULL
retornar
sino
recorrer (n.izq)
recorrer (ni.der)
fin si
}
La anterior función lo que realiza es recorrer todo el árbol
binario, comienza en n, ese sería la cabeza; pregunta en
“n==NULL”, lo que pregunta allí es si esa parte del árbol a
evaluar se encuentra vacía, en caso de que no lo esté continúa
con la opción sino del condicional si, allí ejecuta una nueva
instancia de la misma función, pero el valor brindado a evaluar
es “n.izq”, que hace referencia a nodos ubicados hacia ese lado,
en este caso iniciando desde la cabeza el que continuaría
evaluándose seria el nodo con contenido “6”, hasta que llegue
a “NULL” donde retorna y vuelve a la última instancia de la
2. Introduccióna la Informática2
función generada donde continúa para evaluar el lado derecho
“n.der” hasta que termine de recorrer todo el árbol binario.
Segundo código a explicar.
Algoritmo imprimir
funcion imprimir
{
Si n== NULL
retornar
sino
escribir (n.dato)
imprimir (n.izq)
Imprimir (n.der)
finsi
}
Éste algoritmo lo que realiza es la impresión de el contenido de cada
uno de los nodos, siempre se inicia preguntando si el programa ya
terminó o siencuentra algún vacio, en caso de existir el nodo lo que se
va a hacer es escribir el dato del nodo, y luego de eso ejecutar otra
instancia donde se evalúan los nodos de la izquierda, y ya cuando la
función que se encuentre evaluando hacia la izquierda termine esta
retorna y continua evaluando hacia la derecha hasta que termine
imprimiendo todo el contenido de cada uno de los nodos.
Tercer código para explicar
funcion buscar (n, x)
{
Si n==NULL
Retornar NULL
finsi
Si n.dato==x
retornar TRUE
finsi
Si buscar (n.izq, x) == TRUE
Retornar TRUE
finsi
Si buscar (n.der, x) ==TRUE
Retornar TRUE
finsi
Retorna NULL
En este código lo que se realiza es ingresar un valor x, recorrer
el árbol binario comparando cada contenido con el valor
ingresado, en caso de estar devolver TRUE y en caso de no
estarlo devuelve FALSE, de ese modo se realiza el recorrido
del árbol tanto por derecha como por izquierda.
III. CONCLUSIONES
Podemos llegar a concluir que el uso de la recursividad ayuda
que al momento de la ejecución de toda función el
procedimiento sea un poco más optimizable.