Program Java untuk Mendapatkan elemen tengah LinkedList dalam satu lelaran

Dalam contoh ini, kita akan belajar mendapatkan elemen tengah dari senarai terpaut dalam satu lelaran di Java.

Untuk memahami contoh ini, pastikan anda melawat tutorial berikut,

  • Kelas Sambungan Java
  • Struktur Data LinkedList

Contoh 1: Dapatkan elemen tengah LinkedList dalam satu carian

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

Pengeluaran

 LinkedList: 1 2 3 Elemen Tengah: 2

Dalam contoh di atas, kami telah menerapkan struktur data senarai terpaut di Java. Kami kemudian menemui elemen tengah senarai terpaut dalam satu gelung. Perhatikan kodnya,

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

Di sini, kita mempunyai dua pemboleh ubah ptr1 dan ptr2. Kami menggunakan pemboleh ubah ini untuk melakukan lelaran melalui senarai terpaut.

Dalam setiap lelaran, ptr1 akan mengakses dua nod dan ptr2 akan mengakses nod tunggal dari senarai yang dipautkan.

Sekarang, apabila ptr1 mencapai akhir senarai terpaut, ptr2 akan berada di tengah. Dengan cara ini, kita dapat mendapatkan bahagian tengah senarai terpaut dalam satu lelaran tunggal.

Contoh 2: Dapatkan elemen tengah LinkedList menggunakan kelas 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); ) )

Pengeluaran

 LinkedList: (Kucing, Anjing, Kuda) Elemen Tengah: Anjing

Dalam contoh di atas, kami telah menggunakan LinkedListkelas untuk melaksanakan struktur data senarai yang dipautkan. Perhatikan ungkapan,

 animals.get(animals.size()/2)
  • size () / 2 - mengembalikan kedudukan elemen tengah
  • get () - mengembalikan elemen pada kedudukan tengah

Artikel menarik...