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

JavaScript का उपयोग करके डबल लिंक्ड लिस्ट से एलिमेंट्स हटाना


लिंक्ड लिस्ट से एक एलिमेंट हटाना बहुत आसान है। हमें बस उस नोड से छुटकारा पाना है जिसे हम हटाना चाहते हैं, यानी उसका संदर्भ खो देना। हमें 3 मामलों पर विचार करने की आवश्यकता है:

  • हेड से एलिमेंट हटाना: इस मामले में, हम बस head = head.next असाइन कर सकते हैं और अगले एलिमेंट से प्रीवियस लिंक हटा सकते हैं। इस तरह हम पहले एलिमेंट का संदर्भ खो देंगे। और हमारा हेड दूसरे एलिमेंट की ओर इंगित करना शुरू कर देगा।
  • टेल से एलिमेंट हटाना: इस मामले में, हम बस सेकंड लास्ट नोड के node.next को null असाइन कर सकते हैं और हम लिस्ट से अंतिम एलिमेंट से छुटकारा पा लेंगे। हम टेल को भी वर्तमान नोड की ओर इंगित करने के लिए अपडेट करते हैं।
  • बीच से एलिमेंट हटाना: यह अधिक मुश्किल है। इस मामले में, हमें उस नोड को जो हम हटाना चाहते हैं उसके पहले वाले नोड को सीधे उस नोड की ओर इंगित करना होगा जो हम हटाना चाहते हैं उसके बाद वाले नोड की ओर। इसलिए, prevNode.next = node.next और node.next.prev = prevNode यह हमारे लिए करेगा।

आइए इसका एक चित्रण देखें:

JavaScript का उपयोग करके डबल लिंक्ड लिस्ट से एलिमेंट्स हटाना

आइए देखें कि हम इसे कैसे लागू करेंगे:

उदाहरण

remove(data, position = 0) {    if (this.length === 0) {       console.log("List is already empty");       return;    }    this.length--;    let currNode = this.head;    if (position <= 0) {       this.head = this.head.next;       this.head.prev = null;    }    else if (position >= this.length - 1) {       this.tail = this.tail.prev;       this.tail.next = null;    }    else {       let iter = 0;       while (iter < position) {          currNode = currNode.next;          iter++;       }       currNode.next = currNode.next.next;       currNode.next.prev = currNode;    }    return currNode; }

उदाहरण

आप इसका परीक्षण इस प्रकार कर सकते हैं:

let list = new LinkedList(); list.insert(10); list.insert(20); list.insert(30); list.remove(1); list.display(); list.insert(15, 2); list.remove(); list.display();

आउटपुट

यह आउटपुट देगा:

20 <-> 30 <-> 30 <-> 15 <->

  1. JavaScript का उपयोग करके लिंक्ड लिस्ट बनाना JavaScript का उपयोग करके लिंक्ड लिस्ट बनाना

    आइए एक साधारण क्लास को परिभाषित करके शुरू करें जिसमें एक कंस्ट्रक्टर हो जो हेड को null पर इनिशियलाइज़ करता है। हम LinkedList क्लास के प्रोटोटाइप पर एक और स्ट्रक्चर भी परिभाषित करेंगे जो लिंक्ड लिस्ट में प्रत्येक नोड का प्रतिनिधित्व करेगा। उदाहरण class LinkedList {    constructor() {  

  1. JavaScript में लिंक्ड लिस्ट प्रतिनिधित्व JavaScript में लिंक्ड लिस्ट प्रतिनिधित्व

    उपरोक्त चित्रण के अनुसार, निम्नलिखित महत्वपूर्ण बिंदुओं पर विचार किया जाना चाहिए। लिंक्ड लिस्ट में एक लिंक एलिमेंट होता है जिसे first कहा जाता है। प्रत्येक लिंक एक डेटा फील्ड(एस) और एक लिंक फील्ड जिसे नेक्स्ट कहा जाता है, रखता है। प्रत्येक लिंक अपने नेक्स्ट लिंक का उपयोग करके अपने अगले लिंक से ज

  1. JavaScript का उपयोग करके डबल लिंक्ड लिस्ट से एलिमेंट्स हटाना JavaScript का उपयोग करके डबल लिंक्ड लिस्ट से एलिमेंट्स हटाना

    लिंक्ड लिस्ट से एक एलिमेंट हटाना बहुत आसान है। हमें बस उस नोड से छुटकारा पाना है जिसे हम हटाना चाहते हैं, यानी उसका संदर्भ खो देना। हमें 3 मामलों पर विचार करने की आवश्यकता है: हेड से एलिमेंट हटाना: इस मामले में, हम बस head = head.next असाइन कर सकते हैं और अगले एलिमेंट से प्रीवियस लिंक हटा सकते हैं