Programme Java pour obtenir l'élément central de LinkedList en une seule itération

Dans cet exemple, nous allons apprendre à récupérer l'élément central de la liste chaînée en une seule itération en Java.

Pour comprendre cet exemple, assurez-vous de visiter d'abord les didacticiels suivants,

  • Classe LinkedList Java
  • Structure de données LinkedList

Exemple 1: obtenir l'élément central de LinkedList en une seule recherche

 class LinkedList ( // create an object of Node class // represent the head of the linked list Node head; // static inner class static class Node ( int value; // connect each node to next node Node next; Node(int d) ( value = d; next = null; ) ) public static void main(String() args) ( // create an object of LinkedList LinkedList linkedList = new LinkedList(); // assign values to each linked list node linkedList.head = new Node(1); Node second = new Node(2); Node third = new Node(3); // connect each node of linked list to next node linkedList.head.next = second; second.next = third; // print the linked list Node pointer = linkedList.head; System.out.print("LinkedList: " ); while (pointer != null) ( System.out.print(pointer.value + " "); pointer = pointer.next; ) // Find the middle element Node ptr1 = linkedList.head; Node ptr2 = linkedList.head; while (ptr1.next != null) ( // increase the ptr1 by 2 and ptr2 by 1 // if ptr1 points to last element // ptr2 will points to middle element ptr1 = ptr1.next; if(ptr1.next !=null) ( ptr1 = ptr1.next; ptr2 = ptr2.next; ) ) System.out.println("Middle Element: " + ptr2.value); ) )

Production

 LinkedList: 1 2 3 Élément central: 2

Dans l'exemple ci-dessus, nous avons implémenté la structure de données de la liste chaînée en Java. On retrouve alors l'élément du milieu de la liste chaînée dans une seule boucle. Notez le code,

  while (ptr1.next != null) ( // increase the ptr1 by 2 and ptr2 by 1 // if ptr1 points to last element // ptr2 will points to middle element ptr1 = ptr1.next; if(ptr1.next !=null) ( ptr1 = ptr1.next; ptr2 = ptr2.next; ) )

Ici, nous avons deux variables ptr1 et ptr2. Nous utilisons ces variables pour parcourir la liste chaînée.

A chaque itération, le ptr1 accédera aux deux nœuds et le ptr2 accédera au nœud unique de la liste chaînée.

Maintenant, lorsque le ptr1 atteint la fin de la liste chaînée, le ptr2 sera au milieu. De cette façon, nous pouvons obtenir le milieu de la liste chaînée en une seule itération.

Exemple 2: obtenir l'élément central de LinkedList à l'aide de la classe LinkedList

 import java.util.LinkedList; class Main ( public static void main(String() args)( // create a linked list using the LinkedList class LinkedList animals = new LinkedList(); // Add elements to LinkedList animals.add("Dog"); animals.addFirst("Cat"); animals.addLast("Horse"); System.out.println("LinkedList: " + animals); // access middle element String middle = animals.get(animals.size()/2); System.out.println("Middle Element: " + middle); ) )

Production

 LinkedList: (Chat, Chien, Cheval) Élément central: Chien

Dans l'exemple ci-dessus, nous avons utilisé la LinkedListclasse pour implémenter la structure de données de la liste liée. Remarquez l'expression,

 animals.get(animals.size()/2)
  • size () / 2 - renvoie la position de l'élément central
  • get () - renvoie l'élément en position médiane

Articles intéressants...