डेटा संरचना में, लिंक्ड सूची डेटा तत्वों का एक रैखिक संग्रह है। सूची के प्रत्येक तत्व या नोड में दो आइटम होते हैं - डेटा और अगले नोड का संदर्भ। अंतिम नोड में शून्य का संदर्भ है। लिंक की गई सूची में प्रवेश बिंदु को सूची का प्रमुख कहा जाता है।
सूची में प्रत्येक नोड सामग्री और एक सूचक या सूची में अगले नोड के संदर्भ को एक एकल लिंक की गई सूची में संग्रहीत करता है। सिंगल लिंक्ड लिस्ट किसी भी पॉइंटर या पिछले नोड के संदर्भ को स्टोर नहीं करती है।
चूंकि यह एक क्रमबद्ध एकल लिंक की गई सूची है, इसलिए लिंक की गई सूची में डेटा आइटम हमेशा क्रमबद्ध रहेंगे।
यहाँ एक C++ प्रोग्राम है जो सॉर्टेड सर्कुलरली सिंगल लिंक्ड लिस्ट को लागू करता है
एल्गोरिदम
सूची में नोड डालने के लिए createnode() फ़ंक्शन शुरू करें:यह जांचता है कि सूची खाली है या नहीं। यदि सूची खाली है तो नोड को पहले तत्व के रूप में रखें और हेड अपडेट करें। यदि सूची खाली नहीं है, तो यह एक नया नोड बनाता है और न्यूनोड के डेटा फ़ील्ड में संख्या सम्मिलित करता है। अब न्यूनोड इस तरह से डाला जाएगा कि लिंक्ड लिस्ट सॉर्ट बनी रहे। यदि यह सबसे अंत में डाला जाता है, तो न्यूनोड सिर की ओर इशारा करता है। यदि न्यूनोड पहले डाला गया है, तो लिंक्ड सूची वहां से शुरू होती है। एंडबीगिन फ़ंक्शन डिस्प्ले () नोड्स की संख्या वाली सूची सामग्री को प्रिंट करने के लिए:सी =0 प्रारंभ करें। प्रारंभ पते के साथ पॉइंटर वैरिएबल प्रारंभ करें (सी <=एन ) नोड जानकारी प्रिंट करें सूचक चर अद्यतन करें वेतन वृद्धि c.End
उदाहरण कोड
#शामिल करेंनेमस्पेस एसटीडी का उपयोग करना;स्ट्रक्चर नोड {int d; नोड * एन;} * पी =न्यूल, * हेड =न्यूल, * क्यू =न्यूल, * एनपी =न्यूल; इंट सी =0; शून्य क्रिएटनोड (इंट एन) {एनपी =नया नोड; एनपी-> डी =एन; एनपी-> एन =न्यूल; अगर (सी ==0) {सिर =एनपी; पी =सिर; पी-> एन =सिर; सी++; } और अगर (सी ==1) {पी =सिर; क्यू =पी; अगर (np->d d) { np->n =p; सिर =एनपी; पी-> एन =एनपी; } और अगर (np->d> p->d) {p->n =np; एनपी-> एन =सिर; } सी++; } और {पी =सिर; क्यू =पी; अगर (np->d d) { np->n =p; सिर =एनपी; करो {पी =पी-> एन; } जबकि (p->n !=q); पी-> एन =सिर; } और अगर (np->d> p->d) { जबकि (p->n !=head &&q->d d) { q =p; पी =पी-> एन; अगर (पी-> एन ==हेड) {पी-> एन =एनपी; एनपी-> एन =सिर; } और अगर (np->d d) { q->n =np; एनपी-> एन =पी; टूटना; } } } }}शून्य प्रदर्शन (int i) {नोड *t =सिर; इंट सी =0; जबकि (सी <=मैं) { cout< d<<"\t"; टी =टी-> एन; सी++; }}int main() { int i =0, n, a; cout<<"नोड्स की संख्या दर्ज करें\n"; सिन>>एन; जबकि (i > ए; क्रिएटनोड (ए); मैं++; } cout<<"गोलाकार रूप से एकल लिंक सूची को क्रमबद्ध किया गया"< आउटपुट
नोड्स की संख्या दर्ज करें5नोड का मान दर्ज करें6नोड का मूल्य दर्ज करें4नोड का मूल्य दर्ज करें