Unidad I - Conceptualización - Árboles
Unidad I - Conceptualización - Árboles
Unidad I - Conceptualización - Árboles
DE DATOS NO LINEALES
https://codingpotions.com/estructuras-datos-javascript
https://platzi.com/blog/estructuras-de-datos-que-son/
¿Para qué sirven las estructuras de datos?
• En el ámbito de la informática, las
estructuras de datos son aquellas que
nos permiten, como desarrolladores,
organizar la información de manera
eficiente, y en definitiva diseñar la
solución correcta para un determinado
problema.
• Ya sean las más utilizadas comúnmente -
como las variables, arrays, conjuntos o
clases- o las diseñadas para un
propósito específico -árboles, grafos,
tablas, etc.-, una estructura de datos
nos permite trabajar en un algo nivel de
abstracción almacenando información
para luego acceder a ella, modificarla y
manipularla.
Árbol de Merkle
Operaciones Sobre una estructura de datos se puede efectuar
diferentes tipos de operaciones, entre las más importantes están:
• Navegar por la estructura. Esta es una operación básica que
garantiza que se puede recuperar información almacenada.
• Búsqueda. Permite determinar si un elemento se encuentra o no
en la estructura.
• Consulta de la información. Permite obtener información de
uno o más elementos de la estructura.
• Copia parcial o total. Mediante esta operación se puede
obtener total o parcialmente una estructura con características
similares a la original.
• Prueba. Permite determinar si uno o varios elementos cumplen
determinadas condiciones.
• Modificación. Permite variar parcial o totalmente el contenido de la
información de los elementos de la estructura.
• Inserción. Es aquella mediante la cual se incluye un nuevo elemento
en la estructura.
• Eliminación. Como su nombre lo indica, es la que permite suprimir
elementos de la estructura.
• Verificar si es vacía Permite determinar si existen o no elementos
sobre la estructura.
DATOS ESTRUCTURADOS
ESTRUCTURA DE DATOS LINEALES
En éste tipo de estructuras los elementos se encuentran ubicados
secuencialmente. Al ser dinámica, su composición varía a lo largo de la ejecución
del programa que lo utiliza a través de operaciones de inserción y eliminación.
Dependiendo del tipo de acceso a la secuencia, haremos la siguiente distinción:
➢ Listas: podemos acceder (insertar y eliminar) por cualquier lado.
➢ Pilas: sólo tiene un único punto de acceso fijo a través del cual se añaden, se
eliminan o se consultan elementos.
➢ Colas: tiene dos puntos de acceso, uno para añadir y el otro para consultar o
eliminar elementos.
Estructuras de Datos No Lineales
Las estructuras dinámicas lineales de datos tienen grandes ventajas de
flexibilidad sobre las representaciones contiguas; sin embargo tienen un
punto débil, son listas secuenciales, es decir, están dispuestas de modo que
es necesario moverse a través de ellas una posición cada vez. Esta linealidad
es típica de cadenas, de elementos que pertenecen a una sola dimensión.
En esta asignatura se tratarán las estructuras de datos no lineales, que
resuelven los problemas que plantean las listas lineales y en las que cada
elemento puede tener diferentes elementos “siguientes”, que introducen el
concepto de estructuras de bifurcación.
Las principales estructuras de este tipo son:
➢ Árboles: los elementos están organizados como un verdadero árbol.
➢ Grafos: los elementos están organizados como una red de datos.
Conceptos Arboles
Todo el mundo tiene claro el concepto de
árbol, al menos en su aspecto botánico. Sin
embargo, los árboles no son sólo eso de lo
que estamos rodeados cuando nos perdemos
en un bosque, sino que también se usan en
otros muchos ámbitos. Así por ejemplo,
todos hemos manejado alguna vez el
concepto de árbol genealógico, o hemos visto
clasificaciones jerárquicas como las del reino
animal. En todos esos casos manejamos el
concepto de árbol.
Conceptos Arboles
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
compuesta por un dato y
varios árboles. La forma
gráfica se puede apreciar en la
imagen:
Arboles
Estructura no lineal jerárquica en la que cada elemento
tiene un único antecesor y puede tener varios sucesores.
• Existe un único camino entre el primer nodo de la estructura y
cualquier otro nodo.
En informática se utilizan para aplicaciones algorítmicas
(ordenación, búsqueda), compilación (árboles sintácticos,
árboles de expresiones), etc.
Formalmente, un árbol A es un conjunto finito de
elementos con 0 o más nodos de forma que:
• Se trata de una estructura vacía.
• Si tiene componentes, los nodos restantes se dividen en uno o
más conjuntos disjuntos cada uno de los cuales es a su vez un
árbol. A estos nodos se les llama subárboles del raíz.
• Se trata de una estructura recursiva.
Formas de representar un árbol
Ejercicio
Pasar de diagrama de Venn al diagrama de grafo y viceversa.
Terminología
Camino: enlace entre dos nodos.
• No existe un camino entre todos los nodos.
Rama: camino que termina en una hoja.
Grado de un nodo: número de subárboles que
tiene.
Nivel de un nodo o longitud del camino: número
de arcos o enlaces que hay desde el nodo raíz hasta
un nodo dado.
Altura de un árbol: número máximo de nodos de
una rama; el nivel más alto de un árbol más uno.
Profundidad de un nodo: Numero de caminos que
hay desde el nodo raíz al nodo.
Peso de un árbol: número de nodos terminales.
¿Qué es un Árbol Binario?
• Un árbol binario es un conjunto finito de
elementos que está vacío o dividido en tres
subconjuntos separados.
• El primer subconjunto contiene un elemento
único llamado raíz del árbol. Los otros dos
subconjuntos son por si mismos árboles
binarios y se les conoce como subárboles
izquierdo y derecho del árbol original.
• Un subárbol izquierdo o derecho puede estar
vacío.
• Cada elemento de un árbol binario se
denomina nodo del árbol .
¿Qué es un Árbol Binario?
• Árbol estrictamente binario:
Si cada nodo que no es una hoja en un árbol binario tiene subárboles izquierdo y
derecho que no están vacíos, se clasifica como árbol estrictamente binario
¿Qué es un Árbol Binario Completo?
• Un árbol binario completo tiene 2l nodos en cada nivel l, donde l varia
entre 0 y d
A es Padre de B y C,
también son hijos de A y
son hermanos B es Padre
de D, E, F hijos de B y
son hermanos
TERMINOLOGÍA
• Camino: Secuencia de nodos conectados dentro de un árbol
• Longitud del camino: Es el número de nodos menos 1 en un camino
• Altura del árbol: Es el nivel mas alto del árbol
• Un árbol con un solo nodo tiene altura 1
• Nivel(profundidad) de un nodo: Es el número de nodos entre el nodo y
la raíz.
• Nivel de un árbol: Es el número de nodos entre la raíz y el nodo mas
profundo del árbol.
• Grado(aridad) de un nodo: es número de hijos del nodo
• Grado(aridad) de un árbol: máxima aridad de sus nodos
¿Qué es un Árbol?
• Es una estructura de datos jerárquica.
• La relación entre los elementos es de uno a muchos.
¿Qué es un Árbol?
• Ejemplo: Árbol con 8 nodos
TERMINOLOGÍA
• Nodo: Cada elemento en un árbol.
• Nodo Raíz: Primer elemento agregado al árbol
• Es el nodo que no es apuntado por ningún otro nodo.
TERMINOLOGÍA
• Nodo Padre: Se le llama así al nodo predecesor de un elemento.
• Nodo Hijo: Es el nodo sucesor de un elemento.
• Hermanos: Nodos que tienen el mismo nodo padre.
TERMINOLOGÍA
• Padre: X es el padre de Y si X apunta a Y
TERMINOLOGÍA
• Hijo: Y es el hijo de X si X apunta a Y
TERMINOLOGÍA
• Nodo Hoja: Aquel nodo que no tiene hijos.
TERMINOLOGÍA
• Nodo no terminal: Es
un nodo que no es hoja.
TERMINOLOGÍA