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