Java-Programm zum Abrufen des mittleren Elements von LinkedList in einer einzigen Iteration

In diesem Beispiel lernen wir, das mittlere Element der verknüpften Liste in einer einzigen Iteration in Java abzurufen.

Um dieses Beispiel zu verstehen, besuchen Sie zuerst die folgenden Tutorials:

  • Java LinkedList-Klasse
  • LinkedList-Datenstruktur

Beispiel 1: Holen Sie sich das mittlere Element von LinkedList in einer einzigen Suche

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

Ausgabe

 LinkedList: 1 2 3 Mittleres Element: 2

Im obigen Beispiel haben wir die Datenstruktur der verknüpften Liste in Java implementiert. Wir finden dann das mittlere Element der verknüpften Liste in einer einzelnen Schleife. Beachten Sie den 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; ) )

Hier haben wir zwei Variablen ptr1 und ptr2. Wir verwenden diese Variablen, um die verknüpfte Liste zu durchlaufen.

In jeder Iteration greift der ptr1 auf die beiden Knoten und der ptr2 auf den einzelnen Knoten der verknüpften Liste zu.

Wenn nun ptr1 das Ende der verknüpften Liste erreicht, befindet sich ptr2 in der Mitte. Auf diese Weise können wir die Mitte der verknüpften Liste in einer einzigen Iteration erhalten.

Beispiel 2: Holen Sie sich das mittlere Element von LinkedList mithilfe der LinkedList-Klasse

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

Ausgabe

 LinkedList: (Katze, Hund, Pferd) Mittleres Element: Hund

Im obigen Beispiel haben wir die LinkedListKlasse verwendet, um die Datenstruktur der verknüpften Liste zu implementieren. Beachten Sie den Ausdruck,

 animals.get(animals.size()/2)
  • size () / 2 - gibt die Position des mittleren Elements zurück
  • get () - gibt das Element an der mittleren Position zurück

Interessante Beiträge...