हमें एक फ़ंक्शन इन्सर्ट (डेटा, स्थिति) बनाने की आवश्यकता है जो लिंक की गई सूची में दिए गए स्थान पर डेटा सम्मिलित करता है। हम निम्न चरणों का पालन करेंगे -
- नया नोड बनाएं
- जांचें कि सूची खाली है या नहीं। यदि यह नोड को सिर में जोड़ता है और वापस लौटता है।
- यदि नहीं, तो हम उस स्थिति में पुनरावृति करेंगे, जिसे हम currElem का उपयोग करके सम्मिलित करना चाहते हैं। हम currElem को currElem.next के बराबर बनाकर एक लिंक की गई सूची को पुनरावृत्त करते हैं।
- फिर हम सूची में अगले नोड के लिए नोड बिंदु बनाएंगे। यह बाकी सूची पर नज़र रखने के लिए है।
- अंत में, हम currElem से बाकी सूची के लिंक को तोड़ते हैं और इसे हमारे बनाए गए नोड को इंगित करते हैं। अब नोड सूची में दिए गए स्थान पर है।
यहाँ उसी का एक उदाहरण दिया गया है -
अब आइए एक नजर डालते हैं कि हम इसे कैसे लागू करेंगे -
उदाहरण
<पूर्व>सम्मिलित करें (डेटा, स्थिति =यह। लंबाई) { नोड =नया यह दें। नोड (डेटा); अगर (यह। सिर ===शून्य) { यह। सिर =नोड; यह लंबाई ++; इसे वापस करें। सिर; } चलो iter =1; चलो currNode =this.head; जबकि (currNode.next!=null &&iter <स्थिति) { currNode =currNode.next; इटर++; } नोड.अगला =currNode.next; currNode.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 डालने का प्रयास किया।