Java
 Computer >> コンピューター >  >> プログラミング >> Java

1回の反復でLinkedListの中央要素を取得するJavaプログラム


この記事では、linkedListの中間要素を1回の反復で取得する方法を理解します。 java.util.LinkedListクラスの操作は、二重リンクリストに期待できるパフォーマンスを実行します。リストにインデックスを付ける操作は、リストの最初または最後のどちらか、指定されたインデックスに近い方からトラバースします。

以下は同じのデモンストレーションです-

入力がであると仮定します −

Input linked list: 100 200 330

必要な出力は

The middle element of the list is: 200

アルゴリズム

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

例1

ここでは、「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);
   }
}

出力

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

例2

ここでは、操作をオブジェクト指向プログラミングを示す関数にカプセル化します。

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

出力

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

  1. 台形の領域を見つけるJavaプログラム

    この記事では、台形の領域を見つける方法を理解します。台形は、少なくとも1対の辺が互いに平行な四辺形の一種です。台形の平行な側面はベースと呼ばれ、台形の非平行な側面は脚と呼ばれます。台形とも呼ばれます。 台形の面積は、式-を使用して計算されます。 (height/2 * (side_1 + side_2). i.e. Area = ½ x (sum of the lengths of the parallel sides) x perpendicular distance between parallel sides 以下は同じもののデモンストレーションです。平行な辺aとbの長

  2. 長方形の周囲を見つけるJavaプログラム

    この記事では、長方形の周囲を見つける方法を理解します。長方形の周囲長は、長方形のすべての辺の長さを加算して計算されます。 以下は長方形のデモンストレーションです。長方形の周囲は、長方形の2つの長さと2つの幅の全長です- 入力 入力が-であると仮定します The length of the sides of a rectangle are : 5, 8, 5, 8 出力 必要な出力は-になります Perimeter : 26 アルゴリズム Step 1 – START Step 2 – Declare 5 floating point variabl