Guía de Estructuras de Datos
Concepto de datos estructurado
Son un conjunto de datos organizados y almacenados de manera que se puedan procesar y
manipular con eficiencia.
Ejemplo: Un array de números enteros [2, 4, 6, 8] es un dato estructurado.
Tipos de datos estructurados
Se dividen en estáticos y dinámicos.
Estáticos - Simples
Un solo valor a la vez.
Ejemplo:
Entero edad = 25
Estáticos - Compuestos
Conjunto de datos del mismo tipo o de varios.
Ejemplo:
Dimension numeros[5]
numeros[1] = 10
numeros[2] = 20
Dinámicos - Pilas
Estructura LIFO (Last In, First Out).
Ejemplo:
Apilar(pila, 10)
Apilar(pila, 20)
Desapilar(pila) // Saca 20
Dinámicos - Colas
Estructura FIFO (First In, First Out).
Ejemplo:
Encolar(cola, 10)
Encolar(cola, 20)
Desencolar(cola) // Saca 10
Dinámicos - Listas
Conjunto ordenado de elementos dinámicos.
Ejemplo: [5 → 8 → 10]
Dinámicos - Árbol
Estructura jerárquica con nodos y ramas.
Ejemplo:
10
/ \
5 20
Estructuras de datos contiguas
Guardan elementos en posiciones consecutivas de memoria.
Ejemplo: Arrays, vectores y matrices.
Cadenas (Strings)
Secuencia de caracteres.
Ejemplo: "Hola Mundo"
Arreglos (Arrays)
Colección de elementos del mismo tipo.
Ejemplo:
Dimension notas[3]
notas[1] = 90
notas[2] = 80
notas[3] = 100
Vectores
Arreglo unidimensional.
Ejemplo: [3, 6, 9, 12]
Operaciones en arreglos y vectores
Inserción, eliminación, recorrido, búsqueda.
Ejemplo Recorrido:
Para i=1 Hasta 4 Hacer
Escribir vector[i]
FinPara
Matrices
Arreglos bidimensionales (tabla).
Ejemplo:
[1 2 3]
[4 5 6]
[7 8 9]
Operaciones en matrices
Suma, transposición, multiplicación.
Ejemplo: C[i,j] = A[i,j] + B[i,j]
Arreglos multidimensionales
Más de dos dimensiones.
Ejemplo: Cubo 3D[2][2][2].
Arreglos heterogéneos (Registros)
Permiten diferentes tipos de datos en una misma estructura.
Ejemplo:
Registro Estudiante
Nombre: Cadena
Edad: Entero
Nota: Real
FinRegistro
Definición de punteros
Variable que almacena la dirección en memoria de otro dato.
Uso de punteros
Sirven para manipular datos de manera eficiente y crear estructuras dinámicas.
Ejemplo en C:
int x = 10;
int *ptr = &x;
PSEINT
Software para aprender algoritmos en pseudocódigo. Permite practicar estructuras como
bucles, condicionales y arreglos.
Listas enlazadas - Creación
Lista = NULL
Listas enlazadas - Procesamiento/Recorrido
Mientras nodo != NULL
Escribir nodo.dato
nodo = nodo.sig
FinMientras
Listas enlazadas - Búsqueda
Si nodo.dato == valor Entonces encontrado = Verdadero
Listas enlazadas - Inserción
Insertar nodo en el inicio o final.
Listas enlazadas - Eliminación
Eliminar nodo ajustando los punteros.
Pilas - Creación
pila = vacía
Pilas - Procesamiento/Recorrido
Se desapilan los elementos hasta vaciarla.
Pilas - Búsqueda, Inserción, Eliminación
Usan operaciones Apilar() y Desapilar().
Colas - Procesamiento
Encolar(cola, 5)
Encolar(cola, 8)
Desencolar(cola) // Sale 5
Árbol binario - Concepto
Estructura jerárquica donde cada nodo tiene máx. 2 hijos.
Árbol binario - Partes
Raíz, hijo izquierdo, hijo derecho, hojas.
Árbol binario - Creación
Raiz = NuevoNodo(10)
Raiz.izq = NuevoNodo(5)
Raiz.der = NuevoNodo(20)
Árbol binario - Recorridos
Pre-Orden (Raíz - Izq - Der), In-Orden (Izq - Raíz - Der), Post-Orden (Izq - Der - Raíz).
Árbol binario de búsqueda
Organiza los datos para búsquedas rápidas.
Si valor < nodo.dato → izquierda.
Si valor > nodo.dato → derecha.