Lista doblemente enlazada en Java

Hiten Kanwar 12 octubre 2023
Lista doblemente enlazada en Java

En una lista vinculada, cada elemento actúa como un objeto separado con una parte de datos y una parte de dirección. No utiliza una ubicación de memoria contagiosa para almacenar datos. Una lista doblemente enlazada almacena la dirección del nodo anterior y del siguiente. Tener dos nodos de dirección permite que una lista doblemente enlazada atraviese en ambas direcciones.

Este tutorial analizará las listas vinculadas en Java.

En Java, la clase Linked List es parte del marco de las Colecciones de Java que proporciona la funcionalidad de la estructura de datos Linked List, que actúa como una Doblemente Linked List.

Cada elemento actúa aquí como un nodo que consta de 3 valores, a saber, Prev, Next y Data, en una sola posición. Prev almacena la dirección del elemento anterior, Next almacena la dirección del elemento siguiente y Data almacena los datos reales del nodo.

Por ejemplo,

import java.util.*;
public class ABC {
  public static void main(String[] args) {
    LinkedList<String> fruits = new LinkedList<>();
    fruits.add("apple");
    fruits.add("orange");
    fruits.add("mango");
    System.out.println("LinkedList: " + fruits);
  }
}

Producción :

LinkedList: [apple, orange, mango]

En el ejemplo anterior, hemos creado con éxito una lista vinculada a través del marco de colecciones de Java.

Aquí, el primer nodo tiene datos como apple que también tiene un valor nulo como su anterior y la dirección de naranja como su siguiente. De manera similar, el segundo elemento con datos ’naranja’ tiene la dirección de apple como anterior y la dirección de mango como siguiente.

Siempre que se añade un nuevo elemento, las direcciones Prev y Next se actualizan automáticamente de forma interna.

El método get() se utiliza para acceder a los elementos de Linked List, que itera desde el principio hasta el elemento. También tenemos el método listIterator() para acceder a los componentes. Las funciones next() y previous() pueden ayudar a recorrer la lista en ambas direcciones.

Además, podemos usar el método set() para cambiar los elementos de la Lista Vinculada. La función remove() puede eliminar un elemento.

Usamos algunas de estas funciones en el siguiente ejemplo.

import java.util.*;
public class ABC {
  public static void main(String[] args) {
    LinkedList<String> fruits = new LinkedList<>();
    fruits.add("apple");
    fruits.add("orange");
    fruits.add("mango");
    String str = fruits.listIterator(1).previous();
    System.out.println("i like " + str);
  }
}

Producción :

i like apple

En el ejemplo anterior, accedimos al valor anterior al elemento en el índice 1 usando la función previous().

También podemos crear nuestra clase con datos y variables de puntero para simular una lista Doblemente Vinculada en Java.

Artículo relacionado - Java Linked List