Circular Linked List

सर्कुलर लिंक्ड लिस्ट एक लिंक्ड लिस्ट है जहां सभी नोड्स एक सर्कल बनाने के लिए जुड़े होते हैं। आखिर में कोई NULL नहीं है। एक सर्कुलर लिंक्ड लिस्ट एक सिंगल सर्कुलर लिंक्ड लिस्ट या डबल सर्कुलर लिंक्ड लिस्ट हो सकती है।

सर्कुलर लिंक्ड सूची के लाभ:

1) कोई भी नोड एक प्रारंभिक बिंदु हो सकता है। हम किसी भी बिंदु से शुरू करके पूरी सूची को पार कर सकते हैं। हमें केवल तब रुकने की जरूरत है जब पहले देखे गए नोड को फिर से देखा जाए।
 
2) कतार के कार्यान्वयन के लिए उपयोगी। इस क्रियान्वयन के विपरीत, यदि हम वृत्ताकार लिंक्ड सूची का उपयोग करते हैं, तो हमें आगे और पीछे के लिए दो पॉइंटर्स बनाए रखने की आवश्यकता नहीं है। हम अंतिम सम्मिलित नोड के लिए एक पॉइंटर रख सकते हैं और सामने हमेशा पिछले के रूप में प्राप्त किया जा सकता है।
 
3) बार-बार सूची में जाने के लिए परिपत्र सूची अनुप्रयोगों में उपयोगी होती है। उदाहरण के लिए, जब एक पीसी पर कई एप्लिकेशन चल रहे होते हैं, तो ऑपरेटिंग सिस्टम के लिए एक सूची में रनिंग एप्लिकेशन डालना और फिर उनके माध्यम से साइकिल चलाना, उनमें से प्रत्येक को निष्पादित करने के लिए समय का एक टुकड़ा देना, और फिर उन्हें प्रतीक्षा करना आम बात है जबकि सीपीयू दूसरे अनुप्रयोग को दिया जाता है। यह ऑपरेटिंग सिस्टम के लिए एक गोलाकार सूची का उपयोग करने के लिए सुविधाजनक है ताकि जब यह सूची के अंत तक पहुंच जाए तो यह सूची के सामने के चारों ओर चक्र कर सके।
 
4) सर्कुलर डाउली लिंक्ड लिस्ट का इस्तेमाल फाइबोनैचि हीप जैसी उन्नत डेटा संरचनाओं के कार्यान्वयन के लिए किया जाता है।
एक पारंपरिक लिंक्ड लिस्ट में, हम सूची को हेड नोड से आगे बढ़ाते हैं और जब हम NULL तक पहुँचते हैं तो ट्रैवर्सल को रोक देते हैं। जब हम पहले नोड पर फिर से पहुंचते हैं, तो एक सर्कुलर लिंक्ड लिस्ट में, हम ट्रैवर्सल को रोक देते हैं। लिंक की गई सूची के लिए सी कोड निम्नलिखित है।

/* Function to traverse a given Circular linked list and print nodes */

void printList(struct Node *first)

{

               struct Node *temp = first;

               // If linked list is not empty

               if (first != NULL)

               {

                              // Keep printing nodes till we reach the first node again

                              do

                              {

                                             printf(“%d “, temp->data);

                                             temp = temp->next;

                              }

                              while (temp != first);

               }

}

About the Author: virag

Hello!!!... दोस्तों, आप सभी का इस ब्लॉग पर स्वागत है मेरा नाम विराग सम्बरिया है, और मैं पेशे से एक Computer Teacher हूँ मैं सन २०१० से यह कार्य कर रहा हूँ, और मुझे इस कार्य को करने में अत्यंत संतुष्टि प्राप्त होती है, एक तो इसके माध्यम से मैं अपने ज्ञान और अनुभव का लाभ अन्य लोगों तक पहुंचा पाता हूँ और दूसरा इसके माध्यम से मैं खुद भी अपने ज्ञान में वृद्धि करता हूँ. Thanks a Lot..... आपके इस Blog को Visit करने पर सहृदय धन्यवाद् !!!!!!

You May Also Like

Leave a Reply

Your email address will not be published. Required fields are marked *