Java programma, lai iegūtu LinkedList vidējo elementu vienā atkārtojumā

Šajā piemērā mēs iemācīsimies iegūt saistītā saraksta vidējo elementu vienā Java atkārtojumā.

Lai saprastu šo piemēru, vispirms vispirms apmeklējiet šīs apmācības,

  • Java LinkedList klase
  • LinkedList datu struktūra

1. piemērs: iegūstiet LinkedList vidējo elementu vienā meklēšanā

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

Rezultāts

 LinkedList: 1 2 3 Vidējais elements: 2

Iepriekš minētajā piemērā esam ieviesuši Java saistīto sarakstu datu struktūru. Pēc tam mēs atrodam saistītā saraksta vidējo elementu vienā cilpā. Ievērojiet kodu,

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

Šeit mums ir divi mainīgie ptr1 un ptr2. Mēs izmantojam šos mainīgos, lai atkārtotu saistīto sarakstu.

Katrā atkārtojumā ptr1 piekļūs diviem mezgliem, bet ptr2 piekļūs piesaistītā saraksta vienam mezglam.

Tagad, kad ptr1 sasniegs saistītā saraksta beigas, ptr2 būs pa vidu. Tādā veidā mēs varam iegūt saistītā saraksta vidusdaļu vienā atkārtojumā.

2. piemērs: iegūstiet LinkedList vidējo elementu, izmantojot LinkedList klasi

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

Rezultāts

 LinkedList: (kaķis, suns, zirgs) vidējais elements: suns

Iepriekš minētajā piemērā mēs izmantojām LinkedListklasi, lai ieviestu saistīto sarakstu datu struktūru. Ievērojiet izteicienu,

 animals.get(animals.size()/2)
  • size () / 2 - atgriež vidējā elementa pozīciju
  • get () - atgriež elementu vidējā pozīcijā

Interesanti raksti...