T3 ESTRUCTURA DE DATOS (EEDD) Flashcards
(37 cards)
ESTRUCTURA DE DATOS ¿Cuál es la diferencia entre TAD
y estructura de datos
?
TAD
(tipo abstracto de datos): modelo matemático para definir tipos de datos primitivos
Estructura de datos
: concepto más concreto orientado a la implementación
➡️➡️➡️➡️
Un dato primitivo
es una unidad BASICA de información como un número, carácter o booleano
ESTRUCTURA DE DATOS ¿Cuáles son los tipos de TAD
y sus implementaciones típicas?
“Lalo Saltó Quince Sets Para Tener Grandes Amigos”
🧠TAD
= tipo abstracto de datos
Secuenciales (ordenados)
- list
: array, lista enlazada
- stack
: array, lista enlazada
- queue
/ double-ended queue
(bicola): array, lista doblemente enlazada
Conjuntos
- set
/ multiset
: árbol rojo-negro, tabla hash
Con prioridad
- priority queue
(heap
): montículo
Jerárquicos
- tree
: estructura jerárquica (según tipo)
Relacionales
- graph
: matriz, array de listas enlazadas
Claves y valores
- associative array
(diccionario
, mapa
): tabla hash
Regla nemotécnica:
“Lalo Saltó Quince Sets Para Tener Grandes Amigos”
- list
- stack
- queue
- set
/ multiset
- priority queue
- tree
- graph
- associative array
ESTRUCTURA DE DATOS ¿COMO son las estructuras primitivas
como stack
, queue
y list
? Menciona su comportamiento y operaciones más comunes.
list
: almacena elementos en orden, accesibles por posición
- Respeta el orden de inserción
- Operaciones: “isEmpty”, “insertarDelante”, “insertarDetrás”, “head”, “tail”
➡️stack
: estructura LIFO
, se apilan los elementos (último en entrar, primero en salir)
- Respeta el orden pero solo se accede al último
- Operaciones: “push”, “pop”, “isEmpty”, “top”
➡️queue
: estructura FIFO
, entra por un extremo y sale por el otro
- Respeta el orden de llegada
- Operaciones: “enqueue”, “dequeue”, “isEmpty”, “top”
ESTRUCTURA DE DATOS ¿Qué hace los set
o multiset
en cuanto a los datos?
-
set
: conjuntosin
elementosrepetidos
-
multiset
: permite elementos repetidos - No importa el orden
ESTRUCTURA DE DATOS ¿Qué es una queue
o double-ended queue
(bicola)?
-
queue
: entra por un extremo y sale por el otro (FIFO
) -
bicola
: se puede insertar o eliminar por ambos extremos
ESTRUCTURA DE DATOS ¿Qué es una priority queue
o heap
?
Cola donde cada elemento tiene una prioridad
- Se atiende primero el de mayor prioridad
- Suele implementarse con un montículo
ESTRUCTURA DE DATOS ¿Qué es un tree
?
Estructura jerárquica con nodos conectados
- Un nodo raíz y varios hijos
- Se usa para representar relaciones
ESTRUCTURA DE DATOS ¿Qué es un graph
?
Conjunto de nodos conectados entre sí por aristas
- Puede ser dirigido o no (con o sin flechas
)
- Representa relaciones complejas
ESTRUCTURA DE DATOS ¿Qué es un associative array
o diccionario
?
Estructura que relaciona una clave
con un valor
- Como una agenda: buscas por nombre y obtienes el teléfono
ESTRUCTURA DE DATOS ¿Qué diferencia hay entre head
y tail
en una lista
?
-
head
: es el primer elemento de lalista
-
tail
: es todo lo que queda de lalista
después delhead
ESTRUCTURA DE DATOS ¿Por qué en una pila
o stack
no se recorre, sino que se procesa
? ¿Con que llamadas se procesan?
- Porque solo se accede al último elemento insertado (
LIFO
) - No se navega por todos los elementos como en una
lista
- Se
procesa
elemento a elemento usando “push” (apilar) y “pop” (desapilar)
ESTRUCTURA DE DATOS ¿Qué es un montículo
, un max heap
y un min heap
? ¿La elementos mantienen su orden?
- Un
montículo
es una estructura de árbol casi completo usada para implementar colas con prioridad - El orden se mantiene en todos los niveles del árbol
- En un
max heap
, cada nodo padre es mayor o igual que sus hijos - En un
min heap
, cada nodo padre es menor o igual que sus hijos
ESTRUCTURA DE DATOS ¿Qué es una cola de prioridad
?
Estructura donde cada elemento tiene una prioridad
asociada
- Se atiende primero el de mayor prioridad, no el que llegó antes
- Suele implementarse con un montículo
(heap
)
ARBOLES ¿Qué es un nodo
? ¿Cuál es la diferencia entre raíz
, rama
y hoja
?
- Un
nodo
es un elemento que forma parte de unárbol
y contiene un valor y enlaces a otros elementos - La
raíz
es el primer elemento delárbol
, del que parten todos los demás - Una
rama
es un elemento que tiene descendientes - Una
hoja
es un elemento sin descendientes
ARBOLES ¿Qué es el grado
de un nodo y el grado
/orden
de un árbol?
- El
grado
de un NODO es el número dehijos directos
que tiene
(Si un nodo no tiene hijos, su grado es0
)
— - El
grado
de un árbol (también llamadoorden
) es el númeroMÁXIMO
de hijos que puede tener alguno de susnodos
‼️‼️ los grados pueden cambiar
ARBOLES ¿Qué es el peso
de un nodo⚪️
y de un árbol🌳
?
- El
peso
de unnodo⚪️
es el número dedescendientes
que tiene (sin contar el propionodo⚪️
) - El
peso
de unárbol🌳
es el número total denodos⚪️
que contiene
ARBOLES ¿Qué es la profundidad
de un nodo
?
- Es el número de
aristas
desde laRAIZ
hasta laEL NODO POR EL QUE PREGUNTAMOS
. - La
raíz
tiene profundidad0
- Cada nivel más abajo, suma
1
a la profundidad
🧠➡️ Es como si estuviéramos en un edificio y quiero buscar mi coche en el parking y preguntara ¿Como de profunda está tu plaza de aparcamiento? Siendo la raíz la planta 0 del edificio.
ARBOLES ¿Qué es la altura
de un nodo
?
- La altura va DESDE EL NODO QUE PREGUNTAMOS hasta la
hoja más lejana
🧠➡️ Nos preguntaríamos a nosotros mismos: ¿Cómo de alto
está el nodo?
Como si hablásemos de un edificio y quiero preguntar en qué piso vives.
ARBOLES ¿Qué es un árbol binario
? ¿Y un árbol binario de búsqueda
en relación a los valores de los subarboles?
- Un
árbol binario
es un árbol donde cadanodo
puede tener como máximo2 hijos
(uno izquierdo y uno derecho)
‼️ También puede tener 0 y 1 hijos. - Un
árbol binario de búsqueda
es unárbol binario
en el que:- Los valores del
subárbol izquierdo
son menores que elnodo
- Los valores del
subárbol derecho
son mayores que elnodo
- Los valores del
- Esto permite buscar valores de forma eficiente
ARBOLES En los árboles AVL
¿Qué tiene que ver el factor de equilibrio
con un árbol binario de búsqueda
? ¿De cuanto tiene que ser la diferencia para que un árbol se considere equilibrado?
- El
factor de equilibrio
se aplica a losárboles binarios de búsqueda
para mantenerlos balanceados - Es la diferencia entre la
altura
del subárbol izquierdo y laaltura
del subárbol derecho - Si esta diferencia es
0
,1
o-1
, el árbol estáequilibrado
- Si la diferencia es mayor, puede ser necesario hacer
rotaciones
(como en árbolesAVL
)
ARBOLES ¿Cuáles son ejemplos de árboles autobalanceados
? Alicia Regaba Árboles Silvestres Bambús y Bananos
Son árboles que se ajustan solos
para mantenerse equilibrados y rápidos.
Ejemplos:
- AVL
: realiza rotaciones
tras insertar/eliminar para mantener el equilibrio
- Las rotaciones pueden afectar incluso a la raíz
- Rojo-Negro
: permite cierto desequilibrio, pero sigue reglas estrictas de color
- AA
: simplificación del árbol rojo-negro
- Splay
: reorganiza el árbol tras acceder a un nodo, llevándolo hacia la raíz
- Árbol B
- Árbol B+
: variante del Árbol B
Regla nemotécnica:
Alicia Regaba Árboles Silvestres Bambús y Bananos
ARBOLES ¿Qué son los recorridos preorden
, inorden
y postorden
en un árbol binario
?
Son formas de visitar todos los nodos
de un árbol binario, en distintos órdenes:
-
Preorden
(RID
):- Primero se visita la Raíz, luego el Izquierdo y después el Derecho
-
Inorden
(IRD
):- Primero el subárbol Izquierdo, luego la Raíz, y al final el Derecho
-
Postorden
(IDR
):- Primero el subárbol Izquierdo, luego el Derecho, y al final la Raíz
🔗 Explicación en vídeo:
https://www.youtube.com/watch?v=Jo2euX89Oz8&ab_channel=AprendeSinEspinas
🧭 ¿Dónde empezamos?:
Imagina un círculo con 3 puntos:
- Punto oeste: preorden
- Punto sur: inorden
- Punto este: postorden
ARBOLES B ¿Qué es un árbol B
o multicamino
?
Es un tipo de árbol balanceado
diseñado para trabajar eficientemente con grandes cantidades de datos y acceso en disco.
Características:
- Cada nodo
puede tener más de dos hijos
- Los datos están siempre ordenados
- Mantiene el equilibrio
automáticamente al insertar o eliminar
- También se llama árbol de búsqueda de múltiples caminos
- Cada nodo
(excepto la raíz) debe tener al menos m/2 claves
, donde m
es el orden del árbol
ARBOLES B ¿Qué es un árbol B+
?
Es una variante del árbol B
optimizada para operaciones de lectura, muy usada en bases de datos.
Características:
- Los nodos internos
solo almacenan claves de guía
- Los nodos hojas
están enlazadas entre sí como una lista
para facilitar el recorrido secuencial