Java-program for å få midtelementet i LinkedList i en enkelt iterasjon

I dette eksemplet vil vi lære å få det midterste elementet i den koblede listen i en enkelt iterasjon i Java.

For å forstå dette eksemplet, må du først besøke følgende veiledninger,

  • Java LinkedList-klasse
  • LinkedList Datastruktur

Eksempel 1: Få midtelementet i LinkedList i et enkelt søk

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

Produksjon

 LinkedList: 1 2 3 Midtre element: 2

I eksemplet ovenfor har vi implementert den tilknyttede listedatastrukturen i Java. Vi finner deretter midtelementet i den koblede listen i en enkelt sløyfe. Legg merke til koden,

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

Her har vi to variabler ptr1 og ptr2. Vi bruker disse variablene til å gjenta gjennom den koblede listen.

I hver iterasjon vil ptr1 få tilgang til de to nodene, og ptr2 vil få tilgang til den ene noden til den koblede listen.

Nå, når ptr1 når slutten av den koblede listen, vil ptr2 være i midten. På denne måten er vi i stand til å få midten av koblet liste i en enkelt iterasjon.

Eksempel 2: Få midtelementet i LinkedList ved hjelp av LinkedList-klassen

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

Produksjon

 LinkedList: (Cat, Dog, Horse) Middle Element: Dog

I eksemplet ovenfor har vi brukt LinkedListklassen til å implementere datastrukturen for den koblede listen. Legg merke til uttrykket,

 animals.get(animals.size()/2)
  • størrelse () / 2 - returnerer posisjonen til midtelementet
  • get () - returnerer elementet i midtposisjonen

Interessante artikler...