04-10-12, 02:05 PM
[COLOR="#000080"]بسم الله الرحمن الرحيم
كنت قد تكلمت عن الصف QUEUE في هذا الموضوع
هياكل البيانات Data Structures الصف Queue : الجزء الاول
وساتكلم هنا عن المكدس Stack وهو احد بنى المعطيات وذلك لما له من فائدة في الاستخدام البرمجي
اولا:
ما هو المكدس Stack ؟
هو عبارة عن مصفوفة تحوي اي نوع من البيانات تقوم انت بتحديده ولكنها تتميز بأنها تتبع اسلوب ال LIFO والذي يعني Last In First Out او الداخل اخيرا خارج اولا
اي انه لا يمكنك اخد الا العنصر الاخير منها وبعدما تاخذه رح ينحذف من المكدس
وهو يشبه العلبة اي ان ما يتم اضافته اخيرا يتم سحبه اولا
مثلا اذا وضعنا اغراض بعلبة ما فانك لن تستطيع ازالة الغرض الاول الذي وضعته الا بعد ازالة جميع الاغراض التي فوقه
ثانياً:
كيف اعرف المكدس Stack؟
سهل وجاهز كالعادة
وطبعا تستطيع ان تحدد نوع بيانات اخر مكان String
المهم الان اصبح عندك lمكدس جاهز للاستخدام
ثالثا:
كيف اضيف البيانات الى المكدس Stack ؟
ما عليك الا ان تستخدم الدالة Push ويتم ذلك بهذا الشكل
وبهذا الكود يتم ادخال النص Any String الى الكود ليأخذ دوره
رابعاً:
كيف استخرج البيانات من المكدس Stack ؟
ايضا لا داعي للقلق فهذا اسهل مما تتصور
استخدم الدالة Pop وهي ستقوم بالمطلوب
ستعيد لك العنصر الاخير من المكدس ثم ستقوم بحذفه من المكدس
ويتم استخامها بهذا الشكل
هنا وضعنا العنصر الاخير بالمتغير X وطبعا تستطيع استعماله كما تريد
خامساً:
بماذا يفيدني الصف المكدس Stack ؟
يصراحة المكدس هام جدا جدا جدا في البرمجة
ومستحيل ان يخلو اي برنامج منه
فعند استدعاء اي دالة او تابع فإن قيمة مؤشر الذاكرة يتم حفظخا في المكدس ومن ثم يتم استرجاعها عند الانتهاء
وايضا يفيد في عمل برنامج الة حاسبة وهو ما ساتكلم عنه في الدروس القادمة ان شاء الله
وهذا مثال بسيط لاستخدامه
فقط قم باضافة button واحد
ولاحظ سهولة استخدام المكدس ايضا في ادخال البيانات و استعادتعا ومعالجتها
طبعا يوجد دوال اخرى يمكنك استخدامها مثل
الدالة count تعيد عدد العناصر في المكدس
والدالة peek تعيد العنصر الاخير ولكن دون حذفه
وهما اهم دالتين بعد اللي مذكور فوق
[/COLOR]
كنت قد تكلمت عن الصف QUEUE في هذا الموضوع
هياكل البيانات Data Structures الصف Queue : الجزء الاول
وساتكلم هنا عن المكدس Stack وهو احد بنى المعطيات وذلك لما له من فائدة في الاستخدام البرمجي
اولا:
ما هو المكدس 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 تعيد العنصر الاخير ولكن دون حذفه
وهما اهم دالتين بعد اللي مذكور فوق
[/COLOR]