Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ प्रोग्राम क्रमबद्ध रूप से एकल लिंक्ड सूची को लागू करने के लिए

डेटा संरचना में, लिंक्ड सूची डेटा तत्वों का एक रैखिक संग्रह है। सूची के प्रत्येक तत्व या नोड में दो आइटम होते हैं - डेटा और अगले नोड का संदर्भ। अंतिम नोड में शून्य का संदर्भ है। लिंक की गई सूची में प्रवेश बिंदु को सूची का प्रमुख कहा जाता है।

सूची में प्रत्येक नोड सामग्री और एक सूचक या सूची में अगले नोड के संदर्भ को एक एकल लिंक की गई सूची में संग्रहीत करता है। सिंगल लिंक्ड लिस्ट किसी भी पॉइंटर या पिछले नोड के संदर्भ को स्टोर नहीं करती है।

चूंकि यह एक क्रमबद्ध एकल लिंक की गई सूची है, इसलिए लिंक की गई सूची में डेटा आइटम हमेशा क्रमबद्ध रहेंगे।

यहाँ एक 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->dd) { q->n =np; एनपी-> एन =पी; टूटना; } } } }}शून्य प्रदर्शन (int i) {नोड *t =सिर; इंट सी =0; जबकि (सी <=मैं) { cout<d<<"\t"; टी =टी-> एन; सी++; }}int main() { int i =0, n, a; cout<<"नोड्स की संख्या दर्ज करें\n"; सिन>>एन; जबकि (i > ए; क्रिएटनोड (ए); मैं++; } cout<<"गोलाकार रूप से एकल लिंक सूची को क्रमबद्ध किया गया"< 

आउटपुट

नोड्स की संख्या दर्ज करें5नोड का मान दर्ज करें6नोड का मूल्य दर्ज करें4नोड का मूल्य दर्ज करें 
  1. सी++ में बाइनरी सर्च ट्री को सिंगल लिंक्ड लिस्ट में बदलने का प्रोग्राम?

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें इसे एक सिंगल लिंक्ड लिस्ट (जगह में) में बदलना होगा। तो, अगर इनपुट पसंद है तो आउटपुट होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: सेवा पिछला:=शून्य एक पुनरावर्ती फ़ंक्शन हल () को परिभाषित करें, जो इनपुट के रूप में रूट लेगा। यदि रूट श

  1. सी++ में डबल लिंक्ड लिस्ट का आकार खोजने का कार्यक्रम

    इस समस्या में हमें एक डबल लिंक्ड लिस्ट दी जाती है। हमारा काम C++ में डबली लिंक्ड लिस्ट का आकार खोजने के लिए एक प्रोग्राम बनाना है। डबल लिंक्ड लिस्ट एक विशेष प्रकार की लिंक्ड लिस्ट है जिसमें सिंगल लिंक्ड लिस्ट की तुलना में आगे और पीछे दोनों तरह से नेविगेशन संभव है। डबल लिंक्ड सूचियों की अवधारणा को

  1. सी++ प्रोग्राम एडजेंसी लिस्ट को लागू करने के लिए

    एक ग्राफ की आसन्न सूची प्रतिनिधित्व लिंक्ड सूची प्रतिनिधित्व है। इस निरूपण में हमारे पास सूचियों की एक सरणी है सरणी का आकार V है। यहाँ V शीर्षों की संख्या है। दूसरे शब्दों में, हम कह सकते हैं कि हमारे पास विभिन्न सूचियों के V नंबर को संग्रहीत करने के लिए एक सरणी है। यदि कोई सूची शीर्षलेख u वर्टेक्स