Stack یا پشته و تکنیک LIFO
دسته : تکنولوژی
نویسنده : علی منصورآبادی
تاریخ : 1401/3/28
پست های مرتبط
Stack یا پشته و تکنیک LIFO
آموزش سخت افزار - آموزش تکنولوژی - پشته - پشته در کامپیوتر - صف Stack – Queue -
سلام، وقتتون بخیر. علی هستم برنامه نویس تیما. امروز می خواهیم با هم، Stack ها رو بررسی کنیم. در کامپیوتر ها پشته ها یا همان Stack ها، به صورت صف مانند اطلاعات را جمع آوری و ذخیره می کنند و یکی از کاربرد های مهم و بارز پشته ها، در سیستم عامل ها است که ترتیب اجرای برنامه ها رو در خودشان نگه می دارند تا در صورت بازگشت، برنامه و کد قبلی کاملا برای سیستم مشخص باشد. در ابتدا به تعریفی از پشته و کار اون در کامپیوتر می پردازیم و در آخر هم، تکنیک LIFO و متود های اون رو مورد بررسی قرار می دهیم.
پشته ها، دارای ساختار داده (Data Structure) خطی یا Linear هستند که برای ذخیره داده ها در حافظه استفاده می شوند. همچنین ممکن است به پشته ها یا Stack ها، صف (Queue) هم گفته شود. لازم به ذکر است که داده های درون یک پشته باید همیشه از یک نوع باشند. در شکل زیر یک نمونه از ساختار پشته نشان داده شده است. همانطور که در شکل می بینید، پشته دقیقا مثل یک صف بلیط سینما، یا یک تعداد ظرف روی هم قرار گرفته است ولی با این حال تفاوت هایی هم دارد که در ادامه به این تفاوت ها نیز می پردازیم.
آیتم ها و موارد درون پشته، به ترتیب درج (Push) یا حذف (Pop) می شوند. به همین دلیل است که می گویند ساختار پشته به صورت خطی یا Linear است، چون عملیات های درج و حذف به ترتیب خطی انجام می شوند و به صورت تصادفی یا Random نیست. درست مثل هر صف یا مجموعه، آیتم ها و داده هایی که در یک پشته ذخیره می شوند، به روشی خاص قابل دسترسی هستند. در پشته ها، از تکنیکی به نام LIFO (Last In First Out) استفاده می شود که روش ها و متود های این تکنیک را در ادامه بررسی می کنیم.
LIFO (Last in First Out):
هنگامی که به یک پشته ارجاع داده می شود یعنی آیتمی درج یا حذف می شود، این عملیات ها با استفاده از LIFO به شیوه ای منظم انجام می شوند. LIFO مخفف عبارت "Last In First Out" است که کامپیوتر از این رویکرد، برای سرویس دادن به درخواست هایی که از طرف حافظه کامپیوتر می آیند، استفاده می کند. LIFO در واقع این گونه عمل می کند که ‘آخرین’ داده ذخیره شده در پشته را در ‘اولین’ قدم حذف می کند، یعنی در LIFO ‘آخرین’ داده وارد شده، ‘اول’ از همه حذف می شود. همانطور که می شود حدس زد اگر در صف های عادی در دنیای واقعی همچین الگوریتم و تکنیکی استفاده شود، فقط باعث هرج و مرج می شود که این تفاوت اصلی پشته با صف است. در ادامه روش کار LIFO را به صورت دقیق با هم بررسی می کنیم.
عملیات Push یا درج:
عملیات Push به معنای درج آیتم ها یا داده ها در حافظه پشته است. به طور مثال سیستم قرار دادن و پخش ظروف در رستوران را طبق شکل بالا در نظر می گیریم. عملیات Push ظرف ها (آیتم ها یا داده ها) را بر روی ظروف دیگر (پشته) قرار می دهد. پس یعنی ظرف اول (اولین داده) به انتهای ظروف (پشته) می رود و تمام ظروف بعدی (داده های بعدی) به ترتیب روی اولین ظرف (اولین داده) قرار می گیرند. این به این معنا است که اولین آیتم درج شده غیرقابل دسترس ترین است چون در پایین ترین سطح پشته قرار دارد.
عملیات Pop یا حذف:
عملیات Pop به معنای حذف داده ها از پشته است. در همان شکل بالا یعنی سیستم پخش ظروف، آخرین ظرف (آخرین داده) وارد شده در بالای تمامی ظروف (پشته) قرار دارد. این ظرف (داده) به عنوان اولین موردی است که حذف می شود و از ظروف (پشته) بیرون می آید. لازم به ذکر است که پشته در هر مرحله برداشتن داده، سایر داده ها را به سمت بالا هل می دهد.
امیدوارم که از این آموزش لذت برده باشید و براتون مفید واقع شده باشه. با ما همراه باشید تا با هم یک درصد بیشتر بدونیم.
پست های مرتبط