Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

LinkedList लागू करने के लिए Java प्रोग्राम


इस लेख में, हम समझेंगे कि लिंक्ड लिस्ट कैसे लागू करें। java.util.LinkedList क्लास ऑपरेशन्स वे परफॉर्म करते हैं जो हम डबल-लिंक्ड लिस्ट के लिए उम्मीद कर सकते हैं। ऑपरेशन्स जो लिस्ट में इंडेक्स करते हैं, लिस्ट को शुरुआत या अंत से ट्रैवर्स करेंगे, जो भी निर्दिष्ट इंडेक्स के करीब हो।

नीचे इसका प्रदर्शन है:

मान लीजिए हमारा इनपुट है:

प्रोग्राम चलाएं

वांछित आउटपुट होगा:

लिंक्ड लिस्ट के एलिमेंट्स हैं: 100 150 200 250

एल्गोरिदम

चरण 1 - शुरू
चरण 2 - आवश्यक मेंबर्स के साथ एक क्लास बनाएं
चरण 3 - लिस्ट में एलिमेंट्स जोड़ने के लिए 'insert' फंक्शन परिभाषित करें
चरण 4 - 'main' मेथड में, क्लास का नया इंस्टेंस बनाएं
चरण 5 - एक लिस्ट बनाएं, और 'insert' मेथड का उपयोग करके इसमें एलिमेंट्स जोड़ें
चरण 6 - लिस्ट पर इटरेट करें, और वर्तमान नोड में मौजूद मान प्रदर्शित करें
चरण 7 - अगले नोड पर जाएं और वही ऑपरेशन करें
चरण 8 - इसे तब तक करें जब तक लिस्ट का अंत न पहुंच जाए
चरण 9 - परिणाम प्रदर्शित करें
चरण 10 - रुकें

उदाहरण 1

यहाँ, हम सभी ऑपरेशन्स को 'main' फंक्शन के तहत बांधते हैं।

public class Demo {
    Node head;
    
    static class Node {
        int data;
        Node next_element;
        Node(int element) {
            data = element;
            next_element = null;
        }
    }
    
    public static Demo insert(Demo input_list, int data) {
        Node new_node = new Node(data);
        new_node.next_element = null;
        
        if (input_list.head == null) {
            input_list.head = new_node;
        } else {
            Node last = input_list.head;
            while (last.next_element != null) {
                last = last.next_element;
            }
            last.next_element = new_node;
        }
        return input_list;
    }
    
    public static void main(String[] args) {
        Demo input_list = new Demo();
        System.out.print("एक लिंक्ड लिस्ट घोषित की गई: \n");
        input_list = insert(input_list, 100);
        input_list = insert(input_list, 150);
        input_list = insert(input_list, 200);
        input_list = insert(input_list, 250);
        
        Node current_node = input_list.head;
        System.out.print("लिंक्ड लिस्ट के एलिमेंट्स हैं: \n");
        while (current_node != null) {
            System.out.print(current_node.data + " ");
            current_node = current_node.next_element;
        }
    }
}

आउटपुट

एक लिंक्ड लिस्ट घोषित की गई: 
लिंक्ड लिस्ट के एलिमेंट्स हैं: 100 150 200 250

उदाहरण 2

यहाँ, हम ऑपरेशन्स को फंक्शन्स में एनकैप्सुलेट करते हैं जो ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग प्रदर्शित करते हैं।

public class Demo {
    Node head;
    
    static class Node {
        int data;
        Node next_element;
        Node(int element) {
            data = element;
            next_element = null;
        }
    }
    
    public static Demo insert(Demo input_list, int data) {
        Node new_node = new Node(data);
        new_node.next_element = null;
        
        if (input_list.head == null) {
            input_list.head = new_node;
        } else {
            Node last = input_list.head;
            while (last.next_element != null) {
                last = last.next_element;
            }
            last.next_element = new_node;
        }
        return input_list;
    }
    
    public static void print_list(Demo input_list) {
        Node current_node = input_list.head;
        System.out.print("लिंक्ड लिस्ट के एलिमेंट्स हैं: \n");
        while (current_node != null) {
            System.out.print(current_node.data + " ");
            current_node = current_node.next_element;
        }
    }
    
    public static void main(String[] args) {
        Demo input_list = new Demo();
        System.out.print("एक लिंक्ड लिस्ट घोषित की गई: \n");
        input_list = insert(input_list, 100);
        input_list = insert(input_list, 150);
        input_list = insert(input_list, 200);
        input_list = insert(input_list, 250);
        print_list(input_list);
    }
}

आउटपुट

एक लिंक्ड लिस्ट घोषित की गई: 
लिंक्ड लिस्ट के एलिमेंट्स हैं: 100 150 200 250

लिंक्ड लिस्ट ऑपरेशन्स और जटिलता

ऑपरेशनसिंगली लिंक्ड लिस्टडबल लिंक्ड लिस्टJava LinkedList
इंसर्ट (हेड)O(1)O(1)O(1)
इंसर्ट (टेल)O(n)O(1)O(1)
इंसर्ट (मध्य)O(n)O(n)O(n)
डिलीट (हेड)O(1)O(1)O(1)
डिलीट (टेल)O(n)O(1)O(1)
सर्चO(n)O(n)O(n)
एक्सेस बाय इंडेक्सO(n)O(n)O(n)

सुधार: टेल पॉइंटर जोड़ना

class LinkedList {
    Node head, tail;
    int size = 0;
    
    void addLast(int data) {
        Node newNode = new Node(data);
        if (tail == null) {
            head = tail = newNode;
        } else {
            tail.next = newNode;
            tail = newNode;
        }
        size++;
    }
    
    void addFirst(int data) {
        Node newNode = new Node(data);
        newNode.next = head;
        head = newNode;
        if (tail == null) tail = newNode;
        size++;
    }
}

Java Collections Framework में LinkedList

  • इंटरफेस लागू करता है: List, Deque, Queue, Cloneable, Serializable
  • नल एलिमेंट्स: अनुमत
  • थ्रेड-सेफ: नहीं (Collections.synchronizedList उपयोग करें)
  • इटरेटर: फेल-फास्ट
  1. - Java प्रोग्राम: लिस्ट को दो हिस्सों में विभाजित करना

    इस लेख में हम समझेंगे कि Java में लिस्ट को दो हिस्सों (हाफ) में कैसे विभाजित किया जाता है। लिस्ट एक क्रमबद्ध संग्रह है जो हमें एलिमेंट्स को क्रमिक रूप से स्टोर और एक्सेस करने की अनुमति देता है। उदाहरण इनपुट: Input list :[Java, Python, JavaScript, Shell, Scala] आउटपुट: The first half of the list is

  1. - जावा प्रोग्राम: प्राइवेट कंस्ट्रक्टर इम्प्लीमेंट करना

    इस लेख में हम समझेंगे कि प्राइवेट कंस्ट्रक्टर कैसे इम्प्लीमेंट किया जाता है। प्राइवेट कंस्ट्रक्टर हमें क्लास के इंस्टेंटिएशन को प्रतिबंधित करने की अनुमति देते हैं। डेमोनस्ट्रेशन इनपुट: प्रोग्राम चलाएं आउटपुट: प्राइवेट कंस्ट्रक्टर कॉल हो रहा है एल्गोरिदम चरण 1 - शुरू चरण 2 - private कीवर्ड का उपय

  1. - जावा प्रोग्राम से मल्टीपल इनहेरिटेंस (Multiple Inheritance) लागू करना

    इस लेख में हम समझेंगे कि मल्टीपल इनहेरिटेंस कैसे लागू किया जाता है। जावा मल्टीपल इनहेरिटेंस को सपोर्ट नहीं करता। इसका मतलब है कि एक क्लास एक से अधिक क्लास को एक्सटेंड नहीं कर सकती, लेकिन हम extends कीवर्ड का उपयोग करके अभी भी परिणाम प्राप्त कर सकते हैं। एल्गोरिदम चरण 1 - प्रारंभ चरण 2 - तीन क्लास घ