Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Ejercicios: Estructuras de Datos

Universidad Nacional de Río Negro

Ejercicios de Estructuras de Datos Lineales

Acerca de

Estos ejercicios tienen como propósito ejercitar la construcción e implementación concreta de estructuras de datos lineales (listas enlazadas, pilas, colas) y no lineales (árboles binarios, tablas hash) en C.

Capítulos de Apunte Correspondientes

Cuestiones de Estilo Aplicables


Lista Enlazada Simple

Una lista enlazada es una colección de nodos donde cada nodo contiene un dato y un puntero al siguiente nodo de la secuencia.

typedef struct nodo {
    int dato;
    struct nodo *siguiente;
} nodo_t;

Ejercicio 23.1 - Crear y Destruir ⭐⭐☆☆☆

Ejercicio 23.2 - Inserción ⭐⭐☆☆☆

Ejercicio 23.3 - Eliminación y Búsqueda ⭐⭐☆☆☆


Pila (Stack) - LIFO

Una pila sigue el principio LIFO (Last-In, First-Out). Se puede implementar eficientemente usando una lista enlazada como estructura subyacente.

Ejercicio 23.4 - Implementación con Lista Enlazada ⭐⭐☆☆☆


Cola (Queue) - FIFO

Una cola sigue el principio FIFO (First-In, First-Out). Para una implementación eficiente con listas enlazadas, se requiere mantener punteros tanto a la cabeza (frente) como a la cola (final) de la lista.

typedef struct {
    nodo_t *frente;
    nodo_t *final;
} cola_t;

Ejercicio 23.5 - Implementación con Lista Enlazada ⭐⭐☆☆☆


Estructuras de Datos Avanzadas (Opcional)

Ejercicio 23.6 - Árbol de Búsqueda Binaria (BST) ⭐⭐☆☆☆

Un árbol binario de búsqueda es una estructura de datos basada en nodos donde cada nodo tiene un valor, un puntero a un sub-árbol izquierdo (con valores menores) y un puntero a un sub-árbol derecho (con valores mayores).

Ejercicio 23.7 - Tabla Hash (Encadenamiento Separado) ⭐⭐⭐☆☆

Una tabla hash utiliza una función para convertir una clave en un índice de un arreglo. Las colisiones (cuando dos claves mapean al mismo índice) se manejan almacenando los elementos en una lista enlazada en esa posición del arreglo.