डेटा संरचना में, लिंक्ड सूची डेटा तत्वों का एक रैखिक संग्रह है। सूची के प्रत्येक तत्व या नोड में दो आइटम होते हैं - डेटा और अगले नोड का संदर्भ। अंतिम नोड में शून्य का संदर्भ है। एक लिंक की गई सूची में प्रवेश बिंदु को सूची का प्रमुख कहा जाता है।
सूची में प्रत्येक नोड सामग्री और एक सूचक या सूची में अगले नोड के संदर्भ को एक एकल लिंक की गई सूची में संग्रहीत करता है। सिंगल लिंक्ड लिस्ट किसी भी पॉइंटर या पिछले नोड के संदर्भ को स्टोर नहीं करती है।
क्रमबद्ध एकल लिंक्ड सूची को लागू करने के लिए एक C++ प्रोग्राम विकसित करना।
एल्गोरिदम
सूची में नोड डालने के लिए createnode() फ़ंक्शन शुरू करें:यह जांचता है कि सूची खाली है या नहीं। यदि सूची खाली है तो नोड को पहले तत्व के रूप में रखें और हेड अपडेट करें। अगले पॉइंटर को NULL के साथ इनिशियलाइज़ करें। यदि सूची खाली नहीं है, तो यह एक नया नोड बनाता है और न्यूनोड के डेटा फ़ील्ड में संख्या सम्मिलित करता है। अब न्यूनोड इस तरह से डाला जाएगा कि लिंक्ड लिस्ट सॉर्ट बनी रहे। यदि यह सबसे अंत में डाला जाता है, तो न्यूनोड NULL की ओर इशारा करता है। यदि न्यूनोड पहले डाला गया है, तो लिंक्ड सूची वहां से शुरू होती है। एंडबीगिन फ़ंक्शन डिस्प्ले () नोड्स की संख्या वाली सूची सामग्री को प्रिंट करने के लिए:सी =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नोड का मूल्य दर्ज करें