Estructuras de Datos en C: Registros, Listas, Pilas, Colas y Gestión de Memoria

Clasificado en Informática

Escrito el en español con un tamaño de 2,77 KB

Registros

Los registros permiten agrupar datos y tratarlos como una unidad. En el lenguaje C, los registros se denominan estructuras.

Una estructura en C es una colección de una o más variables, que pueden ser de diferentes tipos, agrupadas bajo un mismo nombre.

La estructura se define mediante:

  • La palabra reservada struct.
  • Un juego de llaves {} que encierra los elementos que componen la estructura.
  • Cada uno de esos elementos serán los miembros de la estructura.
  • Un nombre para la estructura.

Listas

Una lista es una estructura de datos lineal compuesta por elementos del mismo tipo. Son flexibles porque se puede operar sobre ellas agregando o eliminando elementos en cualquier posición.

Tipos de Almacenamiento para Listas

  • Almacenamiento secuencial: Todos los elementos están en posiciones físicas consecutivas de memoria.
  • Almacenamiento enlazado: Está basado en la dirección de memoria de cada uno de los elementos.

Dependiendo del tipo de acción a realizar sobre las listas, se pueden clasificar en:

Pila

Una pila es una lista lineal donde todas las inserciones, eliminaciones y accesos se realizan por un único extremo (LIFO - Last In, First Out).

Siempre se va a acceder o eliminar el elemento más reciente (el último insertado).

Cola

Una cola es una lista lineal donde las inserciones se realizan por un extremo y las eliminaciones por el otro (FIFO - First In, First Out).

Gestión de la Memoria en C

Zonas de Memoria

  • Segmento de código: Contiene el código ejecutable del programa.
  • Segmento de datos estáticos: Almacena elementos cuya vida útil dura toda la ejecución del programa (variables, constantes globales y estáticas).
  • Stack (Pila): Almacena las variables locales o automáticas.
  • Heap (Montículo): Es la zona utilizada por el programador. La asignación no es gestionada por el sistema, sino que se almacena según decida el programador de forma dinámica.

Funciones para la Gestión Dinámica de Memoria

  • malloc: Asigna el número especificado de bytes.
  • realloc: Aumenta o disminuye el tamaño del bloque de memoria especificado.
  • calloc: Asigna el número especificado de bytes y los inicializa a cero.
  • free: Libera el bloque de memoria especificado, devolviéndolo al sistema.

Entradas relacionadas: