Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Semestre: 7mo.
INTRODUCCIÓN .............................................................................................................................. 2
2
MARCO TEÓRICO ............................................................................................................................ 4
PRACTICA ....................................................................................................................................... 12
CONCLUSIÓN ................................................................................................................................. 14
BIBLIOGRAFÍA............................................................................................................................... 14
INTRODUCCIÓN
En esta unidad se debe conocer, identificar y aplicar las estructuras no lineales en la solución
de problemas del mundo real. Para poder aprender de ello se necesita consultar en las fuentes
bibliográficas la terminología sobre árboles como también practicar ejercicios y buscar
3
información ayudara para su mayor comprensión. Utilizando un lenguaje de programación
podemos implementar las operaciones básicas (insertar, eliminar, buscar) en un árbol binario
de búsqueda, así como los recorridos en PreOrden, InOrden y PostOrden. En si podemos
decir que aprenderemos conceptos y aplicaciones de por ejemplo: Concepto de árbol y su
clasificación de árboles al igual las operaciones básicas sobre árboles binarios que sin duda
son herramientas que sirven y servirán en nuestra vida escolar.
MARCO TEÓRICO
# 4.1 ARBOLES 4
Un árbol es una estructura no lineal en la que cada nodo puede apuntar a uno o varios nodos.
También se suele dar una definición recursiva: un árbol es una estructura en compuesta por
un dato y varios árboles.
Esta estructura se usa principalmente para representar datos con una relación jerárquica entre
sus elementos, como por ejemplo registros, árboles genealógicos, y tablas de contenidos.
Vamos a profundizar en un tipo especial de árbol llamado árbol binario, la cual puede ser
implementada fácilmente en la computadora; aunque en un árbol puede parecer muy
restrictivo. También se va a ampliar sobre árboles más generales y puntos con relación a los
árboles binarios; entre estos tenemos a la terminología, los árboles binarios complementos,
árboles binarios de búsqueda, búsqueda e inserción en árboles binarios de búsqueda, árboles
generales, representación de árboles generales en la computadora y correspondencia entre los
árboles generales y árboles binarios.
Arboles binarios. Arboles cuyos nodos contienen dos enlaces (uno de los cuales puede ser
null). El nodo raíz es el primer nodo de un árbol. Cada enlace en el nodo raíz hace referencia
un hijo. El hijo izquierdo es el primer nodo en el subárbol izquierdo (también conocido como
el nodo raíz del subárbol izquierdo). El hijo derecho es el primer nodo en el subárbol derecho
(también conocido como el nodo raíz del subárbol derecho). Los hijos de un nodo especifico
se llaman hermanos. Un nodo sin hijos se llama nodo hoja. Generalmente, los científicos
computacionales dibujan arboles desde el nodo raíz hacia abajo; exactamente lo opuesto a la
manera en que crecen los árboles naturales. Recorrido de un árbol binario: Recorrido:
Requiere que cada nodo del árbol sea procesado (visitado) una vez y solo en una secuencia
predeterminada. Existen dos enfoques generales para la secuencia de recorrido, profundidad
5
y anchura. Recorrido en profundidad:
El proceso exige un camino desde la raíz a través de un hijo, al descendiente más lejano del
primer hijo antes de proseguir a un segundo hijo. En otras palabras, en el recorrido en
profundidad, todos los descendientes de un hijo se procesarán antes del siguiente hijo.
Recorrido en anchura: El proceso se realiza horizontalmente desde la raíz a todos sus hijos,
a continuación, a los hijos de sus hijos y así sucesivamente hasta que todos los nodos han
sido procesados. En otras palabras, en el recorrido en anchura cada nivel se procesa
totalmente antes que comience el siguiente nivel.
Arboles de búsqueda binaria. (Sin valores de nodo duplicado) cuenta con la característica
de que los valores en cualquier subárbol izquierdo son menores que el valor del nodo padre
de ese subárbol, y el valores en cualquier subárbol derecho son mayores que el valor del nodo
padre de ese subárbol.
Arboles AVL. Están siempre equilibrados de tal modo que, para todos los nodos, la altura
de la rama izquierda no difiere en más de una unidad de la altura de la rama derecha o
viceversa. Gracias a esta forma de equilibrio (o balanceo), la complejidad de una búsqueda
en uno de estos árboles se mantiene siempre en orden de complejidad O (log n).
Factor de equilibrio. Puede ser almacenado directamente en cada nodo o ser computado a
partir de las alturas de los sub árboles.
6
Arboles rojo negro. Un árbol rojo-negro es un árbol binario de búsqueda en el que cada
nodo tiene un atributo de color cuyo valor es o bien rojo o bien negro. Además de los
requisitos impuestos a los árboles binarios de búsqueda convencionales, se deben satisfacer
los siguientes para tener un árbol rojo-negro válido:
Árbol AA. Los árboles AA son una variación del árbol rojo-negro, que a su vez es una mejora
del árbol binario de búsqueda. A diferencia de los árboles rojo-negro, los nodos rojos en un
árbol AA sólo pueden añadirse como un hijo derecho. En otras palabras, ningún nodo rojo
puede ser un hijo izquierdo.
Arboles multicamino. Un árbol multicamino posee un grado g mayor a dos, donde cada
nodo de información del árbol tiene un máximo de g hijo.
# 4.1.2 OPERACIONES BÁSICAS SOBRE ARBOLES BINARIO.
# 4.1.3 APLICACIONES
Un árbol binario es una estructura de datos útil cuando se trata de hacer modelos de procesos
en donde se requiere tomar decisiones en uno de dos sentidos en cada parte del proceso. Por
ejemplo, supongamos que tenemos un arreglo en donde queremos encontrar todos los
duplicados. Esta situación es bastante útil en el manejo de las bases de datos, para evitar un
problema que se llama redundancia.
Una manera de encontrar los elementos duplicados en un arreglo es recorrer todo el arreglo
y comparar con cada uno de los elementos del arreglo. Esto implica que si el arreglo tiene
elementos, se deben hacer comparaciones, claro, no es mucho problema si es un número
pequeño, pero el problema se va complicando más a medida que aumenta. Si usamos un
árbol binario, el número de comparaciones se reduce bastante, veamos cómo.
El primer número del arreglo se coloca en la raíz del árbol (como en este ejemplo siempre
vamos a trabajar con árboles binarios, simplemente diremos árbol, para referirnos a un árbol 8
binario) con sus subárboles izquierdo y derechos vacíos. Luego, cada elemento del arreglo
se compara son la información del nodo raíz y se crean los nuevos hijos con el siguiente
criterio:
❖ Si el elemento del arreglo es igual que la información del nodo raíz, entonces notificar
duplicidad.
❖ Si el elemento del arreglo es menor que la información del nodo raíz, entonces se crea
un hijo izquierdo.
❖ Si el elemento del arreglo es mayor que la información del nodo raíz, entonces se crea
un hijo derecho.
# 4.2. GRAFOS
Grafos Dirigidos. Un grafo en el cual toda arista es dirigida se denominará "digrafo" o bien
10
"grafo dirigido". Un grafo dirigido o dígrafo consiste de un conjunto de vértices V y un
conjunto de arcos A.
Los vértices se denominan nodos o puntos; los arcos también se conocen como aristas o
líneas dirigidas que representan que entre un par de vértices existe una relación unívoca.
Grafos no Dirigidos. Un grafo en el cual todas las aristas son no dirigidas se denominará
"grafo no dirigido". El grafo no dirigido es aquel que no tiene sentido su arista. Un grafo no
dirigido G representa elementos, y una arista (v, w) representa una incompatibilidad entre los
elementos v y w.
En los grafos, como en todas las estructuras de datos, las dos operaciones básicas son insertar
11
y borrar. En este caso, cada una de ellas se desdobla en dos, para insertar/eliminar vértices e
insertar/eliminar aristas.
Insertar arista. Esta operación es también muy sencilla. Cuando se inserte una nueva arista
en el grafo, habrá que añadir un nuevo nodo a la lista de adyacencia (lista que almacena los
nodos a los que un vértice puede acceder mediante una arista) del nodo origen, así si se añade
la arista (A,C), se deberá incluir en la lista de adyacencia de A el vértice C como nuevo
destino.
Eliminar arista. Mediante esta operación se borra un arco del grafo. Para llevar a cabo esta
acción es necesario eliminar de la lista de adyacencia del nodo origen el nodo correspondiente
al nodo destino.
Otras operaciones. Las operaciones adicionales que puede incluir un grafo son muy
variadas. Además de las clásicas de búsqueda de un elemento o recorrido del grafo, también
podemos encontrarnos con ejecución de algoritmos que busquen caminos más cortos entre
dos vértices, o recorridos del grafo que ejecuten alguna operación sobre todos los vértices
visitados, por citar algunas operaciones de las más usuales (Dechima, 2013).
PRACTICA
12
13
CONCLUSIÓN
BIBLIOGRAFÍA