یکی از تئوری های بنیادی ساختار داده، Stack هست. پشته یا استک رو خیلی ساده میشه به یه سری کتاب که روی میز چیده شده تعبیر کرد. مسألهای که توی صف و استک و ... مهم هست، نحوه ورود و خروج و مدیریت اعضا هست. تو این نوشته میخواهم یک پشته رو با جاواسکریپت پیاده سازی کنم.
تابع زیر رو در نظر بگیرید:
دو مقدار count و storage رو برای این تابع در نظر گرفتیم.
count تعداد اعضا و storage هم محل قرارگیری اعضاست.
به این تصویر دقت کنید:
در یک استک، آخرین عضو ورودی - اولین عضو خروجی هست.
این شکل نحوه قرار گرفتن آیتم یا عضو در استک رو نشون میده. متد push برای قرار دادن عضو و متد pop برای خارج کردن عضو از استک به کار میره. میخواهیم متدهای مورد نیازمون رو توی Stack که ساختیم پیاده سازی کنیم. اول از همه متدهای push و pop :
متد push : تابعی که مقداری رو در ورودی میگیره و اون رو توی storage ذخیره میکنه. مقدار count یک عدد افزایش پیدا میکنه.
متد pop : اول چک میکنه استک ما عضوی داره یا نه؟ اگر عضوی نداشت، مقدار undefined رو برگردونه و در غیر این صورت، از count یکی کم میکنه و آخرین عضو storage رو میگیره و ازش حذف میکنه.در انتها اون عضو حذف شده رو return میکنه ( از خصوصیات pop همین هست که عضو حذف شده رو بر میگردونه)
به دوتا متد دیگه هم نیاز داریم، بریم پیاده سازی کنیم:
متد size : مقدار count رو برمیگردونه و تعداد اعضای پشته رو نشون میده.
متد peek : آخرین عضو پشته رو برمیگردونه ( بر خلاف pop تاثیری توی اعضای storage و پشته نداره)
خوب استک ما کامل شد و متدهای لازم رو پیاده کردیم:
⚠️ اگه حس میکنید با این کدها راحت نیستید کافیه اون هارو خودتون پیاده سازی کنید. هر چند که این پیاده سازی الزاما بهترین پیاده سازی نیست و شما میتونید اون رو بهتر کنید.
یکبار دیگه به این تصویر دقت کنید. میخواهیم همین کار رو با کدی که زدیم پیاده کنیم.
کارهایی که میخواهیم انجام بدیم :
اول یک پشته میسازیم
عدد ۱ رو توش push میکنیم
عدد ۲ رو push میکنیم
آخرین عضو رو pop می کنیم
سایر نوشته های من در ویرگول:
Follow me on social media
Telegram
Virgool