কম্পিউটার টিউটোরিয়াল

জাভা প্রোগ্রাম: একক ইটারেশনে LinkedList-এর মাঝপথের এলিমেন্ট বের করা

এই আর্টিকেলে আমরা বুঝব কীভাবে একক ইটারেশনে LinkedList-এর মাঝপথের এলিমেন্ট বের করতে হয়। java.util.LinkedList ক্লাসের অপারেশনগুলো ডাবলি-লিঙ্কড লিস্টের মতো কাজ করে।

ধরুন ইনপুট:

Input linked list: 100 200 330

চাহিদা আউটপুট:

The middle element of the list is: 200

অ্যালগরিদম

Step 1 - START 
Step 2 - একটি LinkedList ডিক্লেয়ার করুন input_list নামে। পাঁচটি নোড অবজেক্ট ডিক্লেয়ার করুন: head, first_node, second_node, pointer_1, pointer_2। 
Step 3 - মান ডিফাইন 
Step 4 - while লুপ ব্যবহার করে লিঙ্কড লিস্ট ট্রাভার্স করুন, pointer_1 এবং pointer_2 ব্যবহার করে মাঝপথের এলিমেন্ট বের করুন যতক্ষণ না pointer_1.next null হয়। 
Step 5 - pointer_2-এর মান ফলাফল হিসেবে দেখান। 
Step 6 - STOP

উদাহরণ ১

এখানে সকল অপারেশন '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

উদাহরণ ২

এখানে অপারেশনগুলো ফাংশনে এনক্যাপসুলেট করা হয়েছে অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং প্রদর্শন করতে।

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. জাভা প্রোগ্রাম: বৃত্তের পরিধি (Perimeter) বের করার পদ্ধতি

  2. জাভা প্রোগ্রাম: ট্রাপিজিয়াম (Trapezium) এর ক্ষেত্রফল বের করার পদ্ধতি

  3. জাভা প্রোগ্রাম: আয়তের পরিসীমা নির্ণয়

  4. জাভাতে Meet-in-the-Middle অ্যালগরিদম