Stack در سی شارپ

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

Stack در سی شارپ

Stack در سی شارپ

Stack یا پشته نوع خاصی از مجموعه است که عناصر را به سبک LIFO یعنی به صورت Last In First Out ذخیره می کند. مفهوم LIFO یعنی هر عنصری وارد می شود به عنوان اولین خروجی از همان ساختار انتخاب می شود. پشته یکی از انواع ساختمان داده است که برای ذخیره و بازیابی داده ها استفاده می شود. پشته به شما اجازه دسترسی به آخرین شیء که وارد پشته شده است می دهد. اگر ما آخرین شیء را حذف کنیم می توانیم به شیء یکی مانده به آخر دسترسی داشته باشیم و همینطور تا آخر.

برای توضیح پشته یک مثال ساده را در نظر بگیرید. فرض کنید ما نامه هایی که به دستمان می رسد را روی هم قرار می دهیم، بنابراین نامه ای که بالاتر از همه قرار دارد زودتر از بقیه به دست ما رسیده است. دومین نامه نسبت به نامه های زیری خود همین ویژگی را دارد. اگر نامه ای بیاید شما آن را در اول قرار می دهید و روی همه نامه های دیگر. معمولا ما با نامه هایی کار داریم که جدید هستند و از میان نامه های قدیمی بعضی ها را نگه می داریم و بعضی از آنها را به زباله می اندازیم. فرایندی که توضیح داده شد کاری است که پشته انجام می دهد. پشته مانند جعبه نامه ها در ابتدا خالی است سپس با آمدن نامه جدید به پشته یک عنصر وارد می شود. با مطالعه نامه می توانید آن را دور بیندازید یا آن را سر جای قبلش قرار دهید.

سی شارپ شامل کلاس های مجموعه Stack از نوع غیر عمومی و عمومی است. توصیه می شود از مجموعه عمومی <Stack<T استفاده کنید.

پشته برای ذخیره داده های موقت به سبک LIFO مفید است، ممکن است بخواهید یک عنصر را پس از بازیابی مقدار آن حذف کنید.

خصوصیات و ویژگی های <Stack<T

1- <Stack<T مجموعه Last In First Out است.

2- در فضای نام System.Collection.Generic قرار می گیرد.

3- <Stack<T می تواند حاوی عناصری از نوع مشخص شده باشد. <Stack<T چک کردن نوع زمان کامپایل را فراهم می کند و boxing-unboxing را انجام نمی دهد زیرا عمومی است.

4- عناصر را می توان با استفاده از متد ()Push اضافه کرد. نمی توان از سینتکس collection-initializer استفاده کرد.

5- عناصر را می توان با استفاده از متدهای ()Pop و ()Peek بازیابی کرد. پشته indexer را پشتیبانی نمی کند.

ایجاد پشته

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

ایجاد پشته در سی شارپ

خروجی قطعه کد بالا به صورت زیر می باشد.

ایجاد Stack

شما همچنین می توانید یک Stack از یک آرایه ایجاد کنید مانند آنچه که در ادامه مشاهده می کنید.

خصوصیات و ویژگی های Stack

خروجی قطعه کد بالا به صورت زیر می باشد.

آموزش پشته در زبان سی شارپ

ویژگی های <Stack<T

1- Count

تعداد کل عناصر موجود در پشته را برمی گرداند.

متدهای <Stack<T

1- Push(T)

یک آیتم را در بالای پشته درج می کند.

2- ()Peek

آیتم بالایی را از پشته برمی گرداند.

3- ()Pop

آیتم ها را از بالای پشته حذف و برمی گرداند.

4- Contains(T)

بررسی می کند که آیا یک آیتم در پشته وجود دارد یا خیر.

5- ()Clear

همه آیتم ها را از پشته حذف می کند.

()Pop

متد ()Pop آخرین عنصر را بر می گرداند و آن را از پشته حذف می کند. اگر پشته خالی باشد، خطای InvalidOperationException را نمایش می دهد. بنابراین، همیشه قبل از فراخوانی متد ()Pop تعداد عناصر موجود در پشته را بررسی کنید.

Pop() in Stack

خروجی قطعه کد بالا به صورت زیر می باشد.

Pop() in C#

()Peek

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

متد Peek()

خروجی قطعه کد بالا به صورت زیر می باشد.

Peek() in C#

()Contains

متد ()Contains بررسی می کند که آیا عنصر مشخص شده در مجموعه Stack وجود دارد یا خیر. در صورت وجود true، در غیر این صورت false را بر می گرداند.

Contains() in C#

خروجی قطعه کد بالا به صورت زیر می باشد.

آموزش سی شارپ
Stack پشته Stack Properties Stack Methods آموزش سی شارپ

مقالات این دسته بندی