Πρόγραμμα Java για να λάβετε το μεσαίο στοιχείο του LinkedList σε μία επανάληψη

Σε αυτό το παράδειγμα, θα μάθουμε να παίρνουμε το μεσαίο στοιχείο της συνδεδεμένης λίστας σε μία επανάληψη στην Java.

Για να κατανοήσετε αυτό το παράδειγμα, βεβαιωθείτε ότι έχετε επισκεφθεί πρώτα τα ακόλουθα σεμινάρια,

  • Τάξη Java LinkedList
  • Δομή δεδομένων LinkedList

Παράδειγμα 1: Αποκτήστε το μεσαίο στοιχείο του LinkedList σε μία μόνο αναζήτηση

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

Παραγωγή

 LinkedList: 1 2 3 Μέσο στοιχείο: 2

Στο παραπάνω παράδειγμα, έχουμε εφαρμόσει τη δομή δεδομένων συνδεδεμένης λίστας στην Java. Στη συνέχεια, βρίσκουμε το μεσαίο στοιχείο της συνδεδεμένης λίστας σε ένα μόνο βρόχο. Παρατηρήστε τον κωδικό,

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

Εδώ, έχουμε δύο μεταβλητές ptr1 και ptr2. Χρησιμοποιούμε αυτές τις μεταβλητές για να επαναλάβουμε μέσω της συνδεδεμένης λίστας.

Σε κάθε επανάληψη, το ptr1 θα έχει πρόσβαση στους δύο κόμβους και το ptr2 θα έχει πρόσβαση στον μοναδικό κόμβο της συνδεδεμένης λίστας.

Τώρα, όταν το ptr1 φτάσει στο τέλος της συνδεδεμένης λίστας, το ptr2 θα βρίσκεται στη μέση. Με αυτόν τον τρόπο, μπορούμε να βρούμε τη μέση της συνδεδεμένης λίστας σε μία μόνο επανάληψη.

Παράδειγμα 2: Αποκτήστε το μεσαίο στοιχείο του LinkedList χρησιμοποιώντας την κλάση 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); ) )

Παραγωγή

 LinkedList: (Γάτα, Σκύλος, Άλογο) Μεσαίο Στοιχείο: Σκύλος

Στο παραπάνω παράδειγμα, χρησιμοποιήσαμε την LinkedListκλάση για να εφαρμόσουμε τη δομή δεδομένων συνδεδεμένης λίστας. Παρατηρήστε την έκφραση,

 animals.get(animals.size()/2)
  • size () / 2 - επιστρέφει τη θέση του μεσαίου στοιχείου
  • get () - επιστρέφει το στοιχείο στη μεσαία θέση

ενδιαφέροντα άρθρα...