আপনি একটি মিউজিক স্ট্রিমিং কোম্পানিতে কাজ করেন।
আপনার মিউজিক প্লেয়ার অ্যাপ্লিকেশনের জন্য একটি প্লেলিস্ট ফিচার তৈরির দায়িত্ব দেওয়া হয়েছে।
মিউজিক প্লেয়ার অ্যাপ্লিকেশনের একটি প্রোটোটাইপ লিখুন।
প্রোটোটাইপের জন্য প্রতিটি গানকে কেবল একটি সংখ্যা দিয়ে প্রকাশ করা হবে। সংখ্যার একটি রেঞ্জ (গানের ID) দেওয়া থাকলে, একটি সিঙ্গলি লিংকড লিস্ট তৈরি করুন।
একটি সিঙ্গলি লিংকড লিস্ট দেওয়া থাকলে, আপনি লিস্টটি উল্টে দিয়ে গানগুলো বিপরীত ক্রমে চালাতে পারবেন।
লিংকড লিস্ট কম্পিউটার সায়েন্সের একটি মৌলিক ডেটা স্ট্রাকচার, যা প্রায়ই অন্য ডেটা স্ট্রাকচার তৈরি করতে ব্যবহৃত হয়।
সবচেয়ে সহজ ধরনের লিংকড লিস্ট হলো সিঙ্গলি লিংকড লিস্ট। এর মানে হলো প্রতিটি এলিমেন্ট (বা "নোড")-এ ডেটা থাকে, সাথে থাকে এমন কিছু যা লিস্টের পরের নোডের দিকে ইশারা করে।
লিংকড লিস্ট নিয়ে আরও গভীরে যেতে চাইলে, এই আর্টিকেলটি দেখুন, যেখানে সুন্দর ছবি দিয়ে বিষয়টি ব্যাখ্যা করা হয়েছে।
আমরা আপনার জন্য একটি List ক্লাসের সাধারণ কাঠামো দিয়ে রেখেছি।
এতে Element* টাইপের head এবং size_t টাইপের current_size নামের প্রাইভেট ভ্যারিয়েবল আছে, যেগুলো আপনি ব্যবহার করতে পারেন।
Element স্ট্রাক্টটিও দেওয়া হয়েছে; এতে দুটি ভ্যারিয়েবল আছে: int টাইপের data এবং Element* টাইপের next।
বিস্তারিত আপনি simple_linked_list.h ফাইলে দেখতে পারেন। ওই ফাইলটি বদলানো আপনার জন্য জরুরি নয়, তবে আপনার প্রয়োজন হলে বদলে নিতে পারেন।
টেস্টগুলো simple_linked_list.cpp-এ যেভাবে দেওয়া আছে সেভাবেই ফাংশনগুলো ব্যবহার করে, তাই ফাংশনগুলোর সিগনেচার বদলাবেন না। আপনি চাইলে আরও ফাংশন ও মেম্বার যোগ করতে পারেন।
হেডার ফাইলে র-পয়েন্টার থাকলেও আপনি ভিন্ন কোনো ইমপ্লিমেন্টেশন বেছে নিতে স্বাধীন।
Exercism-এ সাইন আপ করুন, C++ ট্র্যাকের 19টি কনসেপ্ট100টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।