C# Stack مع أمثلة Push & Pop

ما هو المكدس في C#؟

المكدس عبارة عن مجموعة حالات خاصة تمثل مفهوم ما يدخل أخيرًا يخرج أولاً (LIFO). لفهم LIFO أولاً، لنأخذ مثالاً. تخيل كومة من الكتب مع وضع كل كتاب فوق بعضها البعض.

ويعني مفهوم "ما يدخل أخيرًا يخرج أولاً" في حالة الكتب أنه لا يمكن إزالة سوى أعلى الكتب من مجموعة الكتب. لا يمكن إزالة كتاب من بينهما، لأن ذلك من شأنه أن يزعج إعداد المكدس.

وبالتالي في C#، تعمل المكدس أيضًا بنفس الطريقة. تتم إضافة العناصر إلى المكدس، واحدة فوق بعضها البعض. تسمى عملية إضافة عنصر إلى المكدس بعملية الدفع. لإزالة عنصر من المكدس، يمكنك أيضًا إزالة العنصر العلوي من المكدس. تُعرف هذه العملية باسم البوب.

دعونا نلقي نظرة على العمليات المتاحة لمجموعة Stack بمزيد من التفاصيل.

إعلان المكدس

يتم إنشاء المكدس بمساعدة نوع Stack Data. يتم استخدام الكلمة الأساسية "جديد" لإنشاء كائن في المكدس. ثم يتم تعيين الكائن إلى المتغير st.

Stack st = new Stack()

إضافة عناصر إلى المكدس

يتم استخدام طريقة الدفع لإضافة عنصر إلى المكدس. ويرد أدناه بناء الجملة العام للبيان.

Stack.push(element)

إزالة العناصر من المكدس

يتم استخدام طريقة البوب ​​لإزالة عنصر من المكدس. ستعيد عملية البوب ​​العنصر العلوي في المكدس. ويرد أدناه بناء الجملة العام للبيان

 Stack.pop()

العد التنازلي

تُستخدم هذه الخاصية لمعرفة عدد العناصر الموجودة في المكدس. وفيما يلي بناء الجملة العام لهذا البيان.

Stack.Count

يحتوي

تُستخدم هذه الطريقة لمعرفة ما إذا كان هناك عنصر موجود في المكدس. وفيما يلي بناء الجملة العام لهذا البيان. سترجع العبارة صحيحًا إذا كان العنصر موجودًا، وإلا فسوف تُرجع القيمة خطأ.

Stack.Contains(element)

الآن دعونا نرى هذا يعمل على مستوى الكود. سيتم كتابة كافة التعليمات البرمجية المذكورة أدناه لدينا تطبيق وحدة التحكم. ستتم كتابة الكود في ملف Program.cs الخاص بنا.

في البرنامج أدناه، سنكتب الكود لنرى كيف يمكننا استخدام الطرق المذكورة أعلاه.

مثال 1: طريقة Stack.Push()

في هذا المثال سنرى

  • كيف يتم إنشاء المكدس.
  • كيفية عرض عناصر المكدس واستخدام طريقتي Count وContain.

المكدس في C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   Stack st = new Stack();
   st.Push(1);
   st.Push(2);
   st.Push(3);

   foreach (Object obj in st)
   {
    Console.WriteLine(obj);
   }
    Console.WriteLine(); Console.WriteLine();
    Console.WriteLine("The number of elements in the stack " +st.Count);
    Console.WriteLine("Does the stack contain the elements 3 "+st.Contains(3));
    Console.ReadKey();
  }
 }
}

شرح الكود :-

  1. يتم استخدام الخطوة الأولى للإعلان عن المكدس. نحن هنا نعلن عن "st" كمتغير للاحتفاظ بعناصر مجموعتنا.
  2. بعد ذلك، نضيف 3 عناصر إلى مجموعتنا. تتم إضافة كل عنصر عبر طريقة الدفع.
  3. الآن نظرًا لأنه لا يمكن الوصول إلى عناصر المكدس عبر موضع الفهرس مثل قائمة المصفوفةنحتاج إلى استخدام طريقة مختلفة لعرض عناصر المكدس. الكائن (obj) هو متغير مؤقت، تم الإعلان عنه للاحتفاظ بكل عنصر من عناصر المكدس. نستخدم بعد ذلك عبارة foreach لتصفح كل عنصر من عناصر المكدس. لكل عنصر مكدس، يتم تعيين القيمة لمتغير obj. نستخدم بعد ذلك الأمر Console.Writeline لعرض القيمة على وحدة التحكم.
  4. نحن نستخدم خاصية العد (st.count) للحصول على عدد العناصر الموجودة في المكدس. ستُرجع هذه الخاصية رقمًا. ثم نعرض هذه القيمة على وحدة التحكم.
  5. نستخدم بعد ذلك طريقة الاحتواء لمعرفة ما إذا كانت القيمة 3 موجودة في مجموعتنا. سيعود هذا إما بقيمة صحيحة أو خاطئة. نقوم بعد ذلك بعرض قيمة الإرجاع هذه على وحدة التحكم.

إذا تم إدخال الرمز أعلاه بشكل صحيح وتم تشغيل البرنامج، اتبع الخطوات التاليةwing سيتم عرض الإخراج.

الإخراج:

المكدس في C#

من المخرجات، يمكننا أن نرى أن عناصر المكدس معروضة. أيضًا، يتم عرض قيمة True للإشارة إلى أنه تم تعريف القيمة 3 على المكدس.

ملاحظات: لقد لاحظت أن العنصر الأخير الذي تم دفعه إلى المكدس يتم عرضه أولاً. هذا هو العنصر العلوي في المكدس. يظهر أيضًا عدد عناصر المكدس في الإخراج.

المثال 2: طريقة Stack.Pop()

الآن دعونا نلقي نظرة على وظيفة "الإزالة". سنرى الكود المطلوب لإزالة العنصر العلوي من المكدس.

المكدس في C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   Stack st = new Stack();
   st.Push(1);
   st.Push(2);
   st.Push(3);
   
   st.Pop();

   foreach (Object obj in st)
   {
    Console.WriteLine(obj);
   }
    Console.ReadKey();
  }
 }
}

شرح الكود :-

  1. هنا نقوم فقط بإصدار طريقة البوب ​​التي يتم استخدامها لإزالة عنصر من المكدس.

إذا تم إدخال الكود أعلاه بشكل صحيح وتم تشغيل البرنامج، فستتم المتابعةwing سيتم عرض الإخراج.

الإخراج:

المكدس في C#

يمكننا أن نرى أنه تمت إزالة العنصر 3 من المكدس.

نبذة عامة

  • يعتمد المكدس على مفهوم ما يدخل أولاً يخرج أولاً. تسمى عملية إضافة عنصر إلى المكدس بعملية الدفع. تسمى عملية إزالة عنصر إلى المكدس بعملية البوب.