Computer >> Máy Tính >  >> Lập trình >> Java

Chương trình Java để lấy phần tử giữa của LinkedList trong một lần lặp

Trong bài viết này, chúng ta sẽ hiểu cách lấy phần tử giữa của linkedList trong một lần lặp. Các hoạt động của lớp java.util.LinkedList thực hiện mà chúng ta có thể mong đợi đối với một danh sách được liên kết kép. Các thao tác lập chỉ mục vào danh sách sẽ duyệt qua danh sách từ đầu hoặc cuối, tùy theo điều kiện nào gần với chỉ mục được chỉ định hơn.

Dưới đây là một minh chứng về điều tương tự -

Giả sử đầu vào của chúng tôi là -

Input linked list: 100 200 330

Đầu ra mong muốn sẽ là -

The middle element of the list is: 200

Thuật toán

Step 1 - START
Step 2 - Declare a LinkedList namely input_list. Declare five node objects namely head, first_node, second_node, pointer_1, pointer_2.
Step 3 - Define the values.
Step 4 - Using a while loop, iterate over the linked list, get the middle element by traversing the list using pointer_1 and pointer_2 until pointer_1.next is not null.
Step 5 - Display the pointer_2 value as result.
Step 6 - Stop

Ví dụ 1

Ở đây, chúng tôi liên kết tất cả các hoạt động với nhau trong hàm "main".

public class LinkedList {
   Node head;
   static class Node {
      int value;
      Node next;
      Node(int d) {
         value = d;
         next = null;
      }
   }
   public static void main(String[] args) {
      LinkedList input_list = new LinkedList();
      input_list.head = new Node(100);
      Node second_node = new Node(200);
      Node third_node = new Node(330);
      input_list.head.next = second_node;
      second_node.next = third_node;
      Node current_node = input_list.head;
      System.out.print("The linked list is defined as: " );
      while (current_node != null) {
         System.out.print(current_node.value + " ");
         current_node = current_node.next;
      }
      Node pointer_1 = input_list.head;
      Node pointer_2 = input_list.head;
      while (pointer_1.next != null) {
         pointer_1 = pointer_1.next;
         if(pointer_1.next !=null) {
            pointer_1 = pointer_1.next;
            pointer_2 = pointer_2.next;
         }
      }
      System.out.println("\nThe middle element of the list is: " + pointer_2.value);
   }
}

Đầu ra

The linked list is defined as: 100 200 330
The middle element of the list is: 200

Ví dụ 2

Ở đây, chúng tôi đóng gói các hoạt động thành các hàm trưng bày lập trình hướng đối tượng.

public class LinkedList {
   Node head;
   static class Node {
      int value;
      Node next;
      Node(int d) {
         value = d;
         next = null;
      }
   }
   static void get_middle_item(LinkedList input_list){
      Node pointer_1 = input_list.head;
      Node pointer_2 = input_list.head;
      while (pointer_1.next != null) {
         pointer_1 = pointer_1.next;
         if(pointer_1.next !=null) {
            pointer_1 = pointer_1.next;
            pointer_2 = pointer_2.next;
         }
      }
      System.out.println("\nThe middle element of the list is: " + pointer_2.value);
   }
   public static void main(String[] args) {
      LinkedList input_list = new LinkedList();
      input_list.head = new Node(100);
      Node second_node = new Node(200);
      Node third_node = new Node(330);
      input_list.head.next = second_node;
      second_node.next = third_node;
      Node current_node = input_list.head;
      System.out.print("The linked list is defined as: " );
      while (current_node != null) {
         System.out.print(current_node.value + " ");
         current_node = current_node.next;
      }
      get_middle_item(input_list);
   }
}

Đầu ra

The linked list is defined as: 100 200 330
The middle element of the list is: 200