Liste doublement chaînée en Java

Hiten Kanwar 12 octobre 2023
Liste doublement chaînée en Java

Dans une liste chaînée, chaque élément agit comme un objet séparé avec une partie données et une partie adresse. Il n’utilise pas d’emplacement mémoire contagieux pour stocker des données. Une liste à double chaînage stocke l’adresse du nœud précédent ainsi que le nœud suivant. Le fait d’avoir deux nœuds d’adresse permet à une liste à double chaînage de traverser dans les deux sens.

Ce didacticiel traitera des listes chaînées en Java.

En Java, la classe Linked List fait partie du framework Java Collections qui fournit les fonctionnalités de la structure de données Linked List, qui agit comme une liste doublement liée.

Chaque élément agit ici comme un nœud composé de 3 valeurs, à savoir Prev, Next et Data, à une seule position. Prev stocke l’adresse de l’élément précédent, Next stocke l’adresse de l’élément suivant et Data stocke les données réelles du nœud.

Par example,

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);
  }
}

Production:

LinkedList: [apple, orange, mango]

Dans l’exemple ci-dessus, nous avons réussi à créer une LinkedList via le framework Java’s Collections.

Ici, le premier nœud a des données en tant que apple qui contiennent également une valeur nulle comme son précédent et l’adresse d’orange comme son suivant. De même, le deuxième élément avec les données ‘orange’ a l’adresse de pomme comme précédente et l’adresse de mangue comme suivante.

A chaque fois qu’un nouvel élément est ajouté, les adresses Prev et Next sont automatiquement mises à jour en interne.

La méthode get() est utilisée pour accéder aux éléments de la liste chaînée, qui itère du début à l’élément. Nous avons également la méthode listIterator() pour accéder aux composants. Les fonctions next() et previous() peuvent aider à parcourir la liste dans les deux sens.

De plus, nous pouvons utiliser la méthode set() pour modifier les éléments de la liste chaînée. La fonction remove() permet de supprimer un élément.

Nous utilisons certaines de ces fonctions dans l’exemple suivant.

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);
  }
}

Production:

i like apple

Dans l’exemple ci-dessus, nous avons accédé à la valeur précédant l’élément à l’index 1 à l’aide de la fonction previous().

Nous pouvons également créer notre classe avec des variables de données et de pointeur pour simuler une liste doublement liée en Java.

Article connexe - Java Linked List