हमें एक फ़ंक्शन insert(data, position) बनाने की आवश्यकता है जो दिए गए पोजीशन पर लिंक्ड लिस्ट में डेटा इन्सर्ट करता है। हम निम्न चरणों का पालन करेंगे:
- एक नया नोड बनाएं
- जांचें कि क्या लिस्ट खाली है। यदि हां तो नोड को हेड में जोड़ें और लौटें।
- यदि नहीं, तो हम
currElemका उपयोग करके उस पोजीशन पर इटरेट करेंगे जहां हम इसे इन्सर्ट करना चाहते हैं। हम लिंक्ड लिस्ट परcurrElem = currElem.nextबनाकर इटरेट करते हैं। - फिर हम नोड को लिस्ट में अगले नोड की ओर इंगित करेंगे। यह लिस्ट के बाकी हिस्से को ट्रैक करने के लिए है।
- अंत में, हम
currElemसे लिस्ट के बाकी हिस्से का लिंक तोड़ते हैं और इसे हमारे बनाए गए नोड की ओर इंगित करते हैं। अब नोड दिए गए पोजीशन पर लिस्ट में है।
यहां इसका एक चित्रण है:

आइए देखें कि हम इसे कैसे लागू करेंगे:
उदाहरण
insert(data, position = this.length) { let node = new this.Node(data); if (this.head === null) { this.head = node; this.length++; return this.head; } let iter = 1; let currNode = this.head; while (currNode.next != null && iter < position) { currNode = currNode.next; iter++; } node.next = currNode.next; currNode.next = node; this.length++; return node; }
ध्यान दें कि हमने पोजीशन को अंतिम एलिमेंट के रूप में दिया है। ऐसा इसलिए है क्योंकि यदि आप पोजीशन प्रदान नहीं करते हैं, तो यह डिफ़ॉल्ट रूप से अंत में इन्सर्ट हो जाएगा।
आप इसका परीक्षण इस प्रकार कर सकते हैं:
उदाहरण
let list = new LinkedList(); list.insert(10); list.insert(20); list.insert(30); list.insert(15, 2); list.display();
आउटपुट
यह आउटपुट देगा:
10 -> 30 -> 15 -> 20 ->
जैसा कि हम देख सकते हैं सभी एलिमेंट्स उस क्रम में हैं जो हम चाहते थे। हमने 15 को पोजीशन 2 के बाद इन्सर्ट करने की कोशिश की।