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

जावास्क्रिप्ट का उपयोग करके एक डबल लिंक्ड सूची से तत्वों को हटाना


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

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

आइए अब इसका एक उदाहरण देखें -

जावास्क्रिप्ट का उपयोग करके एक डबल लिंक्ड सूची से तत्वों को हटाना

अब आइए एक नजर डालते हैं कि हम इसे कैसे लागू करेंगे -

उदाहरण

<पूर्व>निकालें(डेटा, स्थिति =0) { अगर (यह लंबाई ===0) { कंसोल.लॉग ("सूची पहले से ही खाली है"); वापसी; } यह.लंबाई--; चलो currNode =this.head; अगर (स्थिति <=0) { यह। सिर =यह। सिर। अगला; this.head.prev =शून्य; } और अगर (स्थिति> =यह लंबाई - 1) { यह पूंछ =यह पूंछ। पिछला; this.tail.next =शून्य; } और { चलो iter =0; जबकि (iter <स्थिति) { currNode =currNode.next; इटर++; } currNode.next =currNode.next.next; currNode.next.prev =currNode; } वापसी currNode;}

उदाहरण

आप -

. का उपयोग करके इसका परीक्षण कर सकते हैं
चलो सूची =नई लिंक्डलिस्ट (); 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. जावास्क्रिप्ट का उपयोग करके एक लिंक की गई सूची बनाना

    आइए एक कंस्ट्रक्टर के साथ एक साधारण वर्ग को परिभाषित करके शुरू करते हैं जो सिर को शून्य से आरंभ करता है। हम LinkedList वर्ग के प्रोटोटाइप पर एक और संरचना भी परिभाषित करेंगे जो लिंक की गई सूची में प्रत्येक नोड का प्रतिनिधित्व करेगी। उदाहरण क्लास लिंक्डलिस्ट {कन्स्ट्रक्टर () {this.head =null; यह लंबा

  1. जावास्क्रिप्ट में लिंक्ड सूची प्रतिनिधित्व

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

  1. जावास्क्रिप्ट का उपयोग करके एक डबल लिंक्ड सूची से तत्वों को हटाना

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