सिंगल लिंक्ड लिस्ट एक प्रकार की डेटा संरचना है जो नोड्स से बनी होती है जो सेल्फ रेफरेंशियल स्ट्रक्चर का उपयोग करके बनाई जाती है। इनमें से प्रत्येक नोड में दो भाग होते हैं, अर्थात् डेटा और अगली सूची नोड का संदर्भ। संपूर्ण लिंक की गई सूची तक पहुँचने के लिए केवल पहली सूची नोड के संदर्भ की आवश्यकता होती है। इसे सिर के रूप में जाना जाता है। सूची में अंतिम नोड कुछ भी नहीं इंगित करता है इसलिए यह उस हिस्से में NULL को संग्रहीत करता है।
सिंगल लिंक्ड लिस्ट को लागू करने का कार्यक्रम इस प्रकार दिया गया है।
उदाहरण
#include <iostream> using namespace std; struct Node { int data; struct Node *next; }; struct Node* head = NULL; void insert(int new_data) { struct Node* new_node = (struct Node*) malloc(sizeof(struct Node)); new_node->data = new_data; new_node->next = head; head = new_node; } void display() { struct Node* ptr; ptr = head; while (ptr != NULL) { cout<< ptr->data <<" "; ptr = ptr->next; } } int main() { insert(3); insert(1); insert(7); insert(2); insert(9); cout<<"The linked list is: "; display(); return 0; }
आउटपुट
The linked list is: 9 2 7 1 3
उपरोक्त कार्यक्रम में, संरचना नोड लिंक्ड सूची नोड बनाता है। इसमें डेटा और अगले लिंक्ड लिस्ट नोड के लिए एक पॉइंटर होता है। यह इस प्रकार दिया गया है।
struct Node { int data; struct Node *next; };
फ़ंक्शन सम्मिलित करें () लिंक की गई सूची की शुरुआत में डेटा सम्मिलित करता है। यह एक new_node बनाता है और new_node के डेटा फ़ील्ड में नंबर सम्मिलित करता है। फिर new_node सिर की ओर इशारा करता है। अंत में हेड न्यू_नोड है यानी लिंक्ड लिस्ट वहीं से शुरू होती है। यह नीचे दिया गया है।
void insert(int new_data) { struct Node* new_node = (struct Node*) malloc(sizeof(struct Node)); new_node->data = new_data; new_node->next = head; head = new_node; }
फ़ंक्शन डिस्प्ले () पूरी लिंक की गई सूची को प्रदर्शित करता है। पहला पीटीआर सिर की ओर इशारा करता है। फिर इसे लगातार अगले नोड तक भेजा जाता है जब तक कि नोड्स के सभी डेटा मान मुद्रित नहीं हो जाते। यह नीचे दिया गया है।
void display() { struct Node* ptr; ptr = head; while (ptr != NULL) { cout<< ptr->data <<" "; ptr = ptr->next; } }
फ़ंक्शन मुख्य () में, सम्मिलित () को कॉल करके पहले विभिन्न मूल्यों को लिंक की गई सूची में डाला जाता है। फिर लिंक की गई सूची प्रदर्शित होती है। यह नीचे दिया गया है।
int main() { insert(3); insert(1); insert(7); insert(2); insert(9); cout<<"The linked list is: "; display(); return 0; }