محمد محمدعلیان
محمد محمدعلیان
خواندن ۲ دقیقه·۵ سال پیش

بررسی ساختار داده Stack و Queue (به زبان ساده) + مثال عینی

خب وارد هفته دوم تولید محتوا شدم و کلی ایده باحال توی سر و روی کاغد دارم که محتواهای بهتری تولید کنم?? و میخوام اینستاگرام رو به مراجع توزیع محتوام اضافه کنم?

چرا اینستاگرام رو میخوام اضافه کنم؟ محتوا ها به دلیل امکاناتی مثل پیام خصوصی(دایرکت)، استوری و... قابلیت بیشتر دیده شدن در مدت کمتر رو دارن، تعامل افراد معمولا اونجا بیشتره و اونایی که پست رو میبینن نزدیک به صد درصدشون اکانت دارن و میتونن کامنت بذارن، لایک کنن و ...

بریم سراغ اصل مطلب...

امروز میخوام راجع به دو تا ساختار داده مهم و کلیدی بنویسم که دونستنش برای هربرنامه نویسی لازمه یا توی مرحله عمومی ترش میشه گفت آشنایی و بلدبودن ساختار داده ها خیلی مهم هستن و زیاد باهاشون سر و کله میزنیم، چون زیاد با داده ها سر و کله میزنیم!

قبلش بذارید راجع به FIFO و LIFO صحبت کنیم

FIFO

مخفف first-in, first-out هست و خودمونیش یعنی اولین چیزی که میاد تو، اولین چیزیه که میره بیرون، Queue یه ساختار داده از این نوع هست.

LIFO

مخفف last-in, first-out هست و خودمونیش یعنی آخرین چیزی که میاد، اولین چیزیه که میره بیرون، Stack یه ساختار داده LIFO هست.
چیزی که اومده توش، دیراومده و میخواد زود بره?

Stack

به فارسی "پشته" معادل سازی شده (همون Stack آبرومند تره، نیست؟?)، فرض کنید یه رستوران بازکردید و مشتریاتون بدجور زیاد شدن و شما موندید و کوهی از بشقاب های کثیف، ساختار بشقاب ها چطوره؟ روی هم چیده شدن و اگه بخوایم یه ظرف جدید اضافه کنیم میایم میذاریم روش، حالا دیگه رستوران بسته شده و وقت شستن ظرفاست، چطور میشوریمشون؟ میایم از بالا یکی، یکی ظرفا رو بر می‌داریم و می‌شوریم پس آخرین ظرفی که وارد شده به مجموعه ظروف کثیف، اولین ظرفیه که از این مجموعه خارج میشه!
به عملیات وارد کردن به مجموعه دادمون به اصطلاح میگن push کردن و به عملیات حذف آخرین عنصری که وارد شده میگن pop کردن

Queue

فارسیش میشه "صف" که کاملا هم بیانگر کارش هست، یه صف نونوایی رو درنظر بگیرید که اونی که اول میره توی صف، اولین نفری هم هست که ازش خارج میشه(قاعده یه نونه رو فراموش کنید?)
هرچی رو شما زودتر به یه صف اضافه کنیم زودتر از همه هم باید خارج میشه?
توی برنامه نویسی یه چیزی داریم به اسم job queue که یه ساختار داده صف هست از لیست کارایی که باید انجام بشه، مثلا فرض کنید میخواید 2 میلیون sms بفرستید، قاعدتا همه رو نمیتونید یکجا ارسال کنید بنابراین میاید یه صف میسازید از sms ها و دونه دونه sms ها رو ارسال میکنید و خب همونطور که تا اینجا باید فهمیده باشید شماره اول توی صف همونیه که زودتر ارسال sms بهش انجام میشه(البته فقط ارسال، ممکنه دریافت sms نفر ششم صف سریعتر از نفر اول باشه چون ارسال sms یه سری بخش های دیگه هم داره که دست اپراتور هاست)


دمتون گرم که وقت گذاشتین و خوندین، حتما نظرتون + پیشنهادتون برای محتواهای بعدی رو کامنت کنید
برنامه نویسیساختار داده
یه ممد 20 ساله که برنامه‌نویس بک-انده. لینکای من: https://redl.ink/Mohammadalian_1383
شاید از این پست‌ها خوشتان بیاید