شما در یک شرکت پخش آنلاین موسیقی کار میکنید.
به شما سپرده شده است که برای اپلیکیشن پخش موسیقیتان قابلیت «پخشلیست» را بسازید.
نمونهای اولیه از برنامهی پخشکنندهی موسیقی بنویسید.
در این نمونهی اولیه، هر آهنگ بهسادگی با یک عدد نشان داده میشود. با داشتن بازهای از اعداد (شناسههای آهنگ)، یک لیست پیوندی یکطرفه بسازید.
با داشتن یک لیست پیوندی یکطرفه، باید بتوانید لیست را معکوس کنید تا آهنگها را به ترتیب معکوس پخش کنید.
لیست پیوندی یک ساختار دادهی بنیادی در علوم کامپیوتر است که اغلب در پیادهسازی ساختارهای دادهی دیگر به کار میرود.
سادهترین نوع لیست پیوندی، لیست پیوندی یکطرفه است. یعنی هر عنصر (یا «گره») شامل داده است، همراه با چیزی که به گرهی بعدی در لیست اشاره میکند.
اگر میخواهید بیشتر در مورد لیستهای پیوندی کاوش کنید، این مقاله را ببینید که آن را با تصاویر زیبا توضیح میدهد.
ساختار کلی یک کلاس List را برایتان آماده کردهایم.
این کلاس دو متغیر خصوصی دارد که میتوانید از آنها استفاده کنید: head از نوع Element* و current_size از نوع size_t.
ساختار Element هم در اختیارتان گذاشته شده است؛ این ساختار دو متغیر دارد: data از نوع int و next از نوع Element*.
جزئیات را میتوانید در simple_linked_list.h ببینید. لازم نیست آن فایل را تغییر دهید، اما اگر با نیازهایتان جور درمیآید، میتوانید این کار را بکنید.
آزمونها از همان توابعی استفاده میکنند که در simple_linked_list.cpp آمده است؛ امضای آنها را تغییر ندهید. اگر بخواهید، میتوانید توابع و اعضای بیشتری اضافه کنید.
هرچند فایل هدر اشارهگرهای خام را در بر میگیرد، در انتخاب پیادهسازی دیگری آزاد هستید.