هذه المقاله تشرح كيفية استخدام كلاس Stack لتخزين البيانات فيه , وطرق سحب البيانات منها .
ال Stack تشبه تماماً قيامك برص صناديق فوق بعضها , فانت عندما تقوم برص الصناديق وتبدأ برص الصندوق الأول , ثم تضع الثاني فوقه , ثم الثالث والرابع وهكذا , بحيث يكون اول صندوق في الأسفل , والأخير في الأعلى , وعندما تقوم بسحب الصناديق لإستخدامها مثلاً فانت تبدأ بالصندوق الأعلى , وهو أخر صندوق تم ادخاله للصف , ثم الذي يليه وهكذا , فيكون اخر صندوق تأخذه من الصف هو أول صندوق بدأت به الصف , وهذا هة مبدأ LIFO ( Last In First Out ) , أي المدخل اخيراً خارج اولاً .
Stack Class
ال Stack تعتبر صفاً من البيانات , وتكون البيانات فيه من النوع الذي تحدده في تعريف كائن منها كما سنرى في الكود , فيوضع نوع البيانات الذي تريد تخزينه فيها بين قوسي <> عند تعريفها , حيث في الكود التالي تم عمل Stack تحمل بيانات من نوع String , وبالتالي فكل البيانات التي ستدخل اليها ستكون نصيه , ولكن يمكنك استبدال ذلك بأي نوع اخر من البيانات مثل Int , byte , ... etc
ادخال واخراج البيانات من ال Stack
يتم ادخال البيانات الى Stack عن طريق دالة Push حيث يوضع العنصر - حسب نوع البيانات المحدده - بين قوسي الداله كالتالي :
Push Method
وفي هذه الحالة يوضع العنصر في أعلى الصف , ويستمر هذا كلما وضعت عنصر جديد داخل ال Stack .
وعند استخراج البيانات من ال Stack كما قلنا فان اخر عنصر مودع بها , هو الذي يخرج أولاً , وهناك طريقتين لأستخراج البيانات منها هما : 1- Peek وهي تقوم باستخراج اخر عنصر في ال stack دون حذف هذا العنصر , بمعنى انه في حالة ثبات ال stack كما هي دون تغيير فان هذه الداله كل مره ستخرج نفس النتيجه , وهي قيمة اخر عنصر مودع بال Stack . 2- Pop وهي تقوم بجلب اخر عنصر من ال Stack مع حذف العنصر , وكأنك تأخذ الصناديق من الصف الذي وضعته , فكل مره يقل الصف ويتغير اخر قيمة مودعه في ال Stack .
Get the data from stack
عمليات أخرى على ال Stack
هناك ايضاً اجراءات اخرى يمكن عملها مع ال Stack ونذكر منها : 1- Clear وهي تقوم بمسح كل عناصر ال Stack . 2- ToArray وهي تحول ال Stack الى مصفوفه من نفس نوع البيانات التي تحملها ال Stack , فمثلاً في المثال السابق ستتحول الى مصفوفه من نوع string . 3- Contains وهي ترجع اذا ماكانت قيمة معينه موجوده داخل ال Stack ام لا ( بحث ). 4- CopyTo تقوم هذه الداله بنسخ بيانات ال Stack الى مصفوفه بدايه من index معين .