Una lista enlazada es una estructura de datos dinámica básica en informática, que consta de nodos que contienen datos y enlaces ("enlaces") al nodo siguiente y/o anterior de la lista. [1] La ventaja fundamental sobre una matriz es la flexibilidad estructural: el orden de los elementos de una lista enlazada puede no coincidir con el orden de los elementos de datos en la memoria de la computadora [2] , y el orden de recorrido de la lista siempre es establecido explícitamente por sus enlaces internos.
Una lista lineal de dirección única es una estructura de datos que consta de elementos del mismo tipo, vinculados secuencialmente a través de punteros. Cada elemento de la lista tiene un puntero al siguiente elemento. El último elemento de la lista apunta a NULL . El elemento al que no se apunta es el primer elemento (encabezado) de la lista. Aquí, el enlace en cada nodo apunta al siguiente nodo de la lista. En una lista enlazada individualmente, solo puede moverse hacia el final de la lista. Es imposible averiguar la dirección del elemento anterior en función del contenido del nodo actual.
En informática , una lista lineal generalmente se define como un tipo de datos abstractos (ADT) que formaliza la noción de una colección ordenada de datos . En la práctica, las listas lineales suelen implementarse mediante matrices y listas enlazadas. A veces, el término "lista" también se usa informalmente como sinónimo de "lista enlazada". Por ejemplo, un ADT de lista mutable sin tipo se puede definir como un conjunto de constructor y operaciones básicas:
usando una lista enlazada simple:
lista de estructuras * l1 = ( lista de estructuras * ) malloc ( tamaño de ( lista de estructuras )); l1 -> campo = 1 ; l1 -> siguiente = ( lista de estructuras * ) malloc ( tamaño de ( lista de estructuras )); l1 -> siguiente -> campo = 2 ; l1 -> siguiente -> siguiente = ( lista de estructuras * ) malloc ( tamaño de ( lista de estructuras )); /* etc. */ Lista doblemente enlazada (lista doblemente enlazada)Aquí, los enlaces en cada nodo apuntan al nodo anterior y siguiente de la lista. Al igual que una lista con enlace simple, una lista con enlace doble permite solo el acceso secuencial a los elementos, pero también permite el movimiento en ambas direcciones. En esta lista, es más fácil eliminar y reorganizar elementos, ya que las direcciones de aquellos elementos de la lista cuyos punteros se dirigen al elemento que se está modificando son fácilmente accesibles.
Lista enlazada XORRaramente usado.
Un tipo de lista enlazada es una lista en anillo (cíclica, cerrada). También puede ser de enlace simple o de enlace doble. El último elemento de una lista circular contiene un puntero al primero y el primero (en el caso de una lista doblemente enlazada) al último.
Por regla general, dicha estructura se implementa sobre la base de una lista lineal. Cada lista circular almacena adicionalmente un puntero al primer elemento. No hay ninguna referencia a NULL en esta lista.
También hay listas circulares con un elemento de encabezado dedicado para que sea más fácil recorrer toda la lista.
Las desventajas de las listas enlazadas se derivan de su propiedad principal: el acceso secuencial a los datos:
Estructuras de datos | |
---|---|
Liza | |
Árboles | |
cuenta | |
Otro |