Јава програм за добијање средњег елемента ЛинкедЛист у једној итерацији

У овом примеру научићемо да средњи елемент повезане листе добијемо у једној итерацији на Јави.

Да бисте разумели овај пример, прво посетите следеће водиче,

  • Разред Јава ЛинкедЛист
  • Структура података ЛинкедЛист

Пример 1: Набавите средњи елемент ЛинкедЛист-а у једној претрази

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

Оутпут

 ЛинкедЛист: 1 2 3 Средњи елемент: 2

У горњем примеру, у Јава смо имплементирали структуру података повезане листе. Затим у једној петљи проналазимо средњи елемент повезане листе. Обратите пажњу на код,

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

Овде имамо две променљиве птр1 и птр2. Користимо ове променљиве за прелазак кроз повезану листу.

У свакој итерацији, птр1 ће приступити два чвора, а птр2 ће приступити појединачном чвору повезане листе.

Сада, када птр1 дође до краја повезане листе, птр2 ће бити у средини. На тај начин смо у могућности да добијемо средину повезане листе у једној итерацији.

Пример 2: Набавите средњи елемент ЛинкедЛист користећи класу ЛинкедЛист

 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класу смо користили за примену повезане структуре података листе. Примети израз,

 animals.get(animals.size()/2)
  • сизе () / 2 - враћа положај средњег елемента
  • гет () - враћа елемент у средњи положај

Занимљиви Чланци...