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

जावास्क्रिप्ट का उपयोग करके दोहरी लिंक की गई सूची में तत्वों को सम्मिलित करना


हमें एक फ़ंक्शन इन्सर्ट (डेटा, स्थिति) बनाने की आवश्यकता है जो लिंक की गई सूची में दिए गए स्थान पर डेटा सम्मिलित करता है। हम निम्न चरणों का पालन करेंगे -

  • नया नोड बनाएं
  • जांचें कि सूची खाली है या नहीं। यदि यह नोड को सिर और पूंछ में जोड़ता है और वापस लौटता है।
  • यदि नहीं, तो हम उस स्थिति में पुनरावृति करेंगे, जिसे हम currElem का उपयोग करके सम्मिलित करना चाहते हैं। हम currElem को currElem.next के बराबर बनाकर एक लिंक की गई सूची को पुनरावृत्त करते हैं।

अब हम लिंक्स को निम्न तरीके से बदलते हैं -

  • सूची में अगले नोड के लिए नया नोड बिंदु बनाएं
  • अगले नोड के पिछले बिंदु को नए नोड से बनाएं
  • हमारे नोड को पिछले नोड की ओर इंगित करें
  • पिछले नोड के अगले बिंदु को नए नोड में बनाएं

अंत में, हम currElem से बाकी सूची के लिंक को तोड़ते हैं और इसे हमारे बनाए गए नोड को इंगित करते हैं। अब नोड सूची में दिए गए स्थान पर है।

यहाँ उसी का एक उदाहरण दिया गया है -

जावास्क्रिप्ट का उपयोग करके दोहरी लिंक की गई सूची में तत्वों को सम्मिलित करना

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

उदाहरण

<पूर्व>सम्मिलित करें (डेटा, स्थिति =यह। लंबाई) { नोड =नया यह। नोड (डेटा); यह लंबाई ++; // सूची वर्तमान में खाली है अगर (this.head ===null) {this.head =node; यह पूंछ =नोड; इसे वापस करें। सिर; } // सिर पर सम्मिलन अगर (स्थिति ==0) {नोड.प्रिव =शून्य; नोड.अगला =यह सिर; this.head.prev =नोड; यह सिर =नोड; इसे वापस करें। सिर; } चलो iter =1; चलो currNode =this.head; जबकि (currNode.next!=null &&iter <स्थिति) { currNode =currNode.next; इटर++; } // सूची में अगले नोड के लिए नया नोड बिंदु बनाएं node.next =currNode.next; // अगले नोड के पिछले बिंदु को नए नोड में बनाएं अगर (currNode.next!=null) { currNode.next.prev =node; } // हमारे नोड को पिछले नोड की ओर इंगित करें। // पिछले नोड का अगला बिंदु नए नोड currNode.next =नोड पर बनाएं; // जांचें कि क्या डाला गया तत्व टेल पर था, यदि हाँ तो इसे टेल पॉइंट बनाएं यदि (this.tail.next!=null) {this.tail =this.tail.next; } वापसी नोड;}

ध्यान दें कि हमने अंतिम तत्व के रूप में स्थिति दी है। ऐसा इसलिए है क्योंकि यदि आप कोई स्थिति प्रदान नहीं करते हैं, तो इसे अंत में डिफ़ॉल्ट रूप से सम्मिलित कर दिया जाएगा।

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

उदाहरण

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

आउटपुट

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

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

जैसा कि हम देख सकते हैं कि सभी तत्व हमारे इच्छित क्रम में हैं। हमने 2 के बाद की स्थिति में 15 डालने का प्रयास किया।


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

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

  1. C भाषा का प्रयोग करते हुए लिंक्ड सूची में तत्वों को सम्मिलित करने की व्याख्या करें

    लिंक्ड सूचियाँ गतिशील मेमोरी आवंटन का उपयोग करती हैं अर्थात वे उसी के अनुसार बढ़ती और सिकुड़ती हैं। उन्हें नोड्स के संग्रह के रूप में परिभाषित किया गया है। यहां, नोड्स के दो भाग होते हैं, जो डेटा और लिंक हैं। डेटा, लिंक और लिंक्ड सूचियों का प्रतिनिधित्व नीचे दिया गया है - लिंक की गई सूचियों पर संच

  1. सी ++ में डबल लिंक्ड सूची का उपयोग कर प्राथमिकता कतार

    हमें डेटा और प्राथमिकता एक पूर्णांक मान के रूप में दी जाती है और कार्य दी गई प्राथमिकता के अनुसार एक डबल लिंक्ड सूची बनाना और परिणाम प्रदर्शित करना है। Queue एक FIFO डेटा संरचना है जिसमें जो तत्व पहले डाला जाता है वह सबसे पहले निकाला जाता है। प्राथमिकता कतार एक प्रकार की कतार है जिसमें प्राथमिकता क