تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
هياكل البيانات Data Structures المكدس Stack- الجزء الثاني
#1
كاتب الموضوع : محمد شريقي


بسم الله الرحمن الرحيم

كنت قد تكلمت عن الصف QUEUE في هذا الموضوع
هياكل البيانات Data Structures الصف Queue : الجزء الاول

وساتكلم هنا عن المكدس Stack وهو احد بنى المعطيات وذلك لما له من فائدة في الاستخدام البرمجي

[SIZE=4]اولا:
ما هو المكدس Stack ؟

هو عبارة عن مصفوفة تحوي اي نوع من البيانات تقوم انت بتحديده ولكنها تتميز بأنها تتبع اسلوب ال LIFO والذي يعني Last In First Out او الداخل اخيرا خارج اولا
اي انه لا يمكنك اخد الا العنصر الاخير منها وبعدما تاخذه رح ينحذف من المكدس

وهو يشبه العلبة اي ان ما يتم اضافته اخيرا يتم سحبه اولا
مثلا اذا وضعنا اغراض بعلبة ما فانك لن تستطيع ازالة الغرض الاول الذي وضعته الا بعد ازالة جميع الاغراض التي فوقه

ثانياً:
كيف اعرف المكدس Stack؟


سهل وجاهز كالعادة


كود :
Dim S As New stack(Of String)

وطبعا تستطيع ان تحدد نوع بيانات اخر مكان String
المهم الان اصبح عندك lمكدس جاهز للاستخدام

ثالثا:
كيف اضيف البيانات الى المكدس Stack ؟

ما عليك الا ان تستخدم الدالة Push ويتم ذلك بهذا الشكل



كود :
S.Push("Any String")
وبهذا الكود يتم ادخال النص Any String الى الكود ليأخذ دوره

رابعاً:
كيف استخرج البيانات من المكدس Stack ؟

ايضا لا داعي للقلق فهذا اسهل مما تتصور
استخدم الدالة Pop وهي ستقوم بالمطلوب
ستعيد لك العنصر الاخير من المكدس ثم ستقوم بحذفه من المكدس
ويتم استخامها بهذا الشكل


كود :
Dim X As String = S.Pop

هنا وضعنا العنصر الاخير بالمتغير X وطبعا تستطيع استعماله كما تريد

خامساً:
بماذا يفيدني الصف المكدس Stack ؟


يصراحة المكدس هام جدا جدا جدا في البرمجة
ومستحيل ان يخلو اي برنامج منه
فعند استدعاء اي دالة او تابع فإن قيمة مؤشر الذاكرة يتم حفظخا في المكدس ومن ثم يتم استرجاعها عند الانتهاء
وايضا يفيد في عمل برنامج الة حاسبة وهو ما ساتكلم عنه في الدروس القادمة ان شاء الله
وهذا مثال بسيط لاستخدامه


كود :
Public Class Form1
Dim S As New Stack(Of String)

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For i = 0 To 5
S.Push(i)
Next
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
For i = 1 To S.Count
MsgBox(S.Pop)
Next
End Sub
End Class
فقط قم باضافة button واحد
ولاحظ سهولة استخدام المكدس ايضا في ادخال البيانات و استعادتعا ومعالجتها

طبعا يوجد دوال اخرى يمكنك استخدامها مثل
الدالة count تعيد عدد العناصر في المكدس
والدالة peek تعيد العنصر الاخير ولكن دون حذفه
وهما اهم دالتين بعد اللي مذكور فوق
[/SIZE]



الملفات المرفقة
.rar   Stack.rar (الحجم : 67.06 ك ب / التحميلات : 21)
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [شرح] اتصال بقاعدة بيانات اكسيس , اضافة بيان , تعديل بيان , حذف بيان , عرض البيانات . ahmed salam 20 9,081 26-09-16, 08:12 AM
آخر رد: abumuhannadzym
  [كود] استرجاع البيانات من ConnectionString silverlight 1 294 25-01-16, 05:08 PM
آخر رد: khodor1985
  [درس فيديو] حل مشكلة صلاحيات قواعد البيانات عند تغيير مسارها على الجهاز Operating System Error 5 أحمد النجار 1 416 31-12-15, 02:52 AM
آخر رد: WAEL ABED
  فيديو بالعربي تبادل البيانات بين Excel و VB.net أحمد النجار 0 552 03-06-15, 10:53 PM
آخر رد: أحمد النجار
  تحويل الفيديو في برامجك-الجزء الثاني( إصلاح للمشاكل + تعديل للروابط + توضيح للأمر ) RaggiTech 1 714 10-12-14, 06:37 PM
آخر رد: abulayth
  الجزء الثالث من:كيف تجعل الـ Text Box ذكي!يترجم العمليات الحسابية ويخرج الناتج (الأقواس المتعددة) !! أنس محمود 9 2,079 06-12-14, 10:11 PM
آخر رد: RFEE3 ALSHAN
  برمجة قواعد البيانات sql server + vb.net ابوهديل 1 5,827 13-02-14, 08:26 PM
آخر رد: Omar Mekkawy
  برمجة قواعد البيانات SQL Server + vb.net مع ابو عبد الرحمن مبرمج أوتار 3 2,462 07-06-13, 06:09 AM
آخر رد: مبرمج أوتار
  حساب قيمة معادلة(اقصد صيغة دون مجاهيل) مكتوبة بالتكست : الجزء الخامس والاخير محمد شريقي 3 909 28-05-13, 01:06 PM
آخر رد: Sajad
  الجزء الثاني من:كيف تجعل الـ Text Box ذكي!يترجم العمليات الحسابية ويخرج الناتج ( العمليات المتعددة)! أنس محمود 0 689 22-02-13, 12:39 AM
آخر رد: أنس محمود

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم