एक लिंक्ड लिस्ट एक रैखिक डेटा संरचना है जिसमें कई नोड्स होते हैं जो एक दूसरे से जुड़े होते हैं। प्रत्येक नोड में दो फील्ड होते हैं डेटा फील्ड और अगले नोड का पता।
मान लीजिए हमारे पास एक सिंगली लिंक्ड लिस्ट दी गई है, कार्य दिए गए लिंक्ड लिस्ट की शुरुआत में एक नोड डालना है। उदाहरण के लिए,
इनपुट-1 - 1 → 2 → 3 → 4
'5' को दिए गए लिंक्ड लिस्ट के हेड या शुरुआत में डालें।
आउटपुट - 5 → 1 → 2 → 3 → 4
व्याख्या - लिंक्ड लिस्ट की शुरुआत में नोड डालने के बाद यह लिंक्ड लिस्ट को 5 → 1 → 2 → 3 → 4 के रूप में प्रिंट करेगा।
इस प्रॉब्लम को हल करने का दृष्टिकोण
प्रारंभ में, हमारे पास एक लिंक्ड लिस्ट है जिसमें नोड्स होते हैं। प्रत्येक नोड में डेटा और अगले नोड का पता होता है।
चूंकि हमने पहले ही एक नोड बना लिया है, इसलिए हम एक फंक्शन बनाएंगे जो हेड नोड के पते को पैरामीटर के रूप में लेगा और वह डेटा जिसे हमें लिंक्ड लिस्ट की शुरुआत में डालना है और डेटा को शुरुआत में डाल देगा। अब हेड को नए डाले गए नोड की ओर इंगित करें।
एक फंक्शन insertAtHead(node*& head, int data) हेड नोड का पता और वह डेटा लेता है जिसे हमें डालना है।
एक नया नोड बनाएं और उसमें डेटा डालें।
हेड को नए बनाए गए नोड की ओर ले जाएं।
लिंक्ड लिस्ट प्रिंट करें।
उदाहरण
#include <iostream>
using namespace std;
class node {
public:
int data;
node* next;
node(int d) {
data = d;
next = NULL;
}
};
void insertAtHead(node*& head, int data) {
node* n = new node(data);
n->next = head;
head = n;
}
void print(node* head) {
while (head != NULL) {
cout << head->data << "->";
head = head->next;
}
}
int main() {
node* head = NULL;
insertAtHead(head, 5);
insertAtHead(head, 2);
insertAtHead(head, 8);
insertAtHead(head, 3);
print(head);
}
आउटपुट
उपरोक्त कोड चलाने पर निम्न आउटपुट उत्पन्न होगा,
3→8→2→5→
लिंक्ड लिस्ट की शुरुआत में नोड्स 3, 8, 2, और 5 डालने पर, यह आउटपुट के रूप में उत्पन्न करेगा - 3→8→2→5→।