Programma Java per ottenere l'elemento centrale di LinkedList in una singola iterazione

In questo esempio, impareremo a ottenere l'elemento centrale dell'elenco collegato in una singola iterazione in Java.

Per comprendere questo esempio, assicurati di visitare prima i seguenti tutorial,

  • Classe LinkedList Java
  • Struttura dati LinkedList

Esempio 1: ottieni l'elemento centrale di LinkedList in una singola ricerca

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

Produzione

 Elenco collegato: 1 2 3 Elemento centrale: 2

Nell'esempio precedente, abbiamo implementato la struttura dei dati dell'elenco collegato in Java. Quindi troviamo l'elemento centrale della lista collegata in un unico ciclo. Notare il codice,

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

Qui abbiamo due variabili ptr1 e ptr2. Usiamo queste variabili per scorrere l'elenco collegato.

In ogni iterazione, il ptr1 accederà ai due nodi e il ptr2 accederà al singolo nodo della lista collegata.

Ora, quando il ptr1 raggiunge la fine della lista collegata, il ptr2 sarà nel mezzo. In questo modo, siamo in grado di ottenere il centro della lista collegata in una singola iterazione.

Esempio 2: ottieni l'elemento centrale di LinkedList utilizzando 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); ) )

Produzione

 Elenco collegato: (gatto, cane, cavallo) Elemento centrale: cane

Nell'esempio precedente, abbiamo utilizzato la LinkedListclasse per implementare la struttura dei dati dell'elenco collegato. Notare l'espressione,

 animals.get(animals.size()/2)
  • size () / 2 - restituisce la posizione dell'elemento centrale
  • get () - restituisce l'elemento nella posizione centrale

Articoli interessanti...