आप एक संगीत स्ट्रीमिंग कंपनी के लिए काम करते हैं।
आपको अपने संगीत प्लेयर एप्लिकेशन के लिए एक प्लेलिस्ट फीचर बनाने का काम सौंपा गया है।
म्यूज़िक प्लेयर एप्लिकेशन का एक प्रोटोटाइप लिखिए।
प्रोटोटाइप के लिए, हर गाने को बस एक संख्या से दर्शाया जाएगा। संख्याओं की एक रेंज (यानी गानों की आईडी) दी गई हो, तो एक सिंगली लिंक्ड लिस्ट बनाइए।
एक सिंगली लिंक्ड लिस्ट दी गई हो, तो आपको उस लिस्ट को उलटकर गाने उल्टे क्रम में चला पाना चाहिए।
लिंक्ड लिस्ट कंप्यूटर विज्ञान में एक बुनियादी डेटा स्ट्रक्चर है, जिसका उपयोग अक्सर दूसरे डेटा स्ट्रक्चर बनाने में किया जाता है।
सबसे सरल तरह की लिंक्ड लिस्ट सिंगली लिंक्ड लिस्ट होती है। इसका मतलब है कि हर एलिमेंट (या "नोड") में डेटा होता है, और साथ में वह चीज़ भी होती है जो लिस्ट के अगले नोड की ओर इशारा करती है।
अगर आप लिंक्ड लिस्ट के बारे में और गहराई में जाना चाहते हैं, तो यह लेख देखिए, जिसमें अच्छे चित्रों की मदद से इसे समझाया गया है।
हमने आपके लिए List क्लास की सामान्य संरचना पहले से तैयार कर दी है। इसमें दो प्राइवेट वेरिएबल हैं: Element* टाइप का head और size_t टाइप का current_size। इन दोनों को आप अपने कोड में इस्तेमाल कर सकते हैं।
Element स्ट्रक्चर भी दिया गया है। इसमें दो वेरिएबल हैं: int टाइप का data और Element* टाइप का next।
इसकी पूरी जानकारी आप simple_linked_list.h में देख सकते हैं। उस फाइल को बदलना ज़रूरी नहीं है, लेकिन अगर वह आपकी ज़रूरत के अनुसार ठीक लगे तो आप उसे बदल सकते हैं।
टेस्ट इन फंक्शनों का ठीक उसी रूप में इस्तेमाल करते हैं जैसे वे simple_linked_list.cpp में दिए गए हैं, इसलिए इनका सिग्नेचर न बदलिए। अगर चाहें तो आप और फंक्शन तथा मेंबर जोड़ सकते हैं।
हालाँकि हेडर फाइल में रॉ पॉइंटर दिए गए हैं, फिर भी आप चाहें तो कोई अलग कार्यान्वयन चुन सकते हैं।
Exercism पर साइन अप कीजिए और C++ को 19 कॉन्सेप्ट100 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।