سه شنبه ۲۷ شهريور ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

آموزش سی شارپ - کلاس Stack

این کلاس مجموعه‌ای از اشیا را نمایش می‌دهد که از آخر به اول (Last-In, First-Out) قابل دسترسی هستند. وقتی نیاز به دسترسی به عناصر از آخر به اول دارید از آن استفاده می‌شود. وقتی یک عنصر را به لیست اضافه می‌کنید، این عمل به عنوان اضافه کردن عنصر (Push) شناخته می‌شود و وقتی آن را حذف می‌کنید، به آن عملی که پاک کردن عنصر (Pop) نام دارد.

متدها و خاصیت‌های کلاس Stack

جدول زیر خاصیت‌های معمول استفاده شده از کلاس Stack را نشان می‌دهد −

شماره خاصیت و توضیحات
۱

Count

تعداد عناصر موجود در Stack را برمی‌گرداند.

جدول زیر متدهای معمول استفاده شده از کلاس Stack را نشان می‌دهد −

شماره متد و توضیحات
۱

public virtual void Clear();

تمام عناصر موجود در Stack را حذف می‌کند.

۲

public virtual bool Contains(object obj);

تشخیص می‌دهد که آیا یک عنصر در Stack وجود دارد یا خیر.

۳

public virtual object Peek();

شیء بالای Stack را بدون حذف آن برمی‌گرداند.

۴

public virtual object Pop();

شیء بالای Stack را حذف و برمی‌گرداند.

۵

public virtual void Push(object obj);

یک شیء را در بالای Stack قرار می‌دهد.

۶

public virtual object[] ToArray();

Stack را به یک آرایه جدید کپی می‌کند.

مثال

مثال زیر نحوه استفاده از Stack را نشان می‌دهد −

using System;
using System.Collections;

namespace CollectionsApplication {
   class Program {
      static void Main(string[] args) {
         Stack st = new Stack();
         
         st.Push('A');
         st.Push('M');
         st.Push('G');
         st.Push('W');
         
         Console.WriteLine("Current stack: ");
         foreach (char c in st) {
            Console.Write(c + " ");
         }
         Console.WriteLine();
         
         st.Push('V');
         st.Push('H');
         Console.WriteLine("The next poppable value in stack: {0}", st.Peek());
         Console.WriteLine("Current stack: ");
         
         foreach (char c in st) {
            Console.Write(c + " ");
         }
         
         Console.WriteLine();
         
         Console.WriteLine("Removing values ");
         st.Pop();
         st.Pop();
         st.Pop();
         
         Console.WriteLine("Current stack: ");
         foreach (char c in st) {
            Console.Write(c + " ");
         }
      }
   }
}

وقتی کد بالا کامپایل و اجرا می‌شود، نتیجه زیر تولید می‌شود −

Current stack: 
W G M A
The next poppable value in stack: H
Current stack: 
H V W G M A
Removing values
Current stack: 
G M A