تقييم الموضوع :
  • 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 ك ب / التحميلات : 44)
}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  رقابة قاعدة البيانات (التحديث التلقائي للبيانات ) SqlDependency قناص المدينة 0 518 05-10-23, 04:43 PM
آخر رد: قناص المدينة
  الجزء الثالث من:كيف تجعل الـ Text Box ذكي!يترجم العمليات الحسابية ويخرج الناتج (الأقواس المتعددة) !! أنس محمود 10 7,827 19-07-22, 12:15 AM
آخر رد: StartLight4000
Video [درس فيديو] حل مشكلة تغيير مسار قاعدة البيانات مع تقارير كريستال ريبورت رمضان272 0 1,681 23-04-22, 05:56 AM
آخر رد: رمضان272
  [شرح] اتصال بقاعدة بيانات اكسيس , اضافة بيان , تعديل بيان , حذف بيان , عرض البيانات . ahmed salam 25 38,229 23-02-22, 06:04 PM
آخر رد: رضوان الجماعي
  [SQL] تحسين أداء وسرعة قاعدة البيانات SQL SERVER اسامه الهرماوي 0 3,586 28-10-19, 03:12 AM
آخر رد: اسامه الهرماوي
  [VB.NET] برمجة dynamic Buttons مع قواعد البيانات mgr21002100 1 2,853 13-08-19, 05:36 PM
آخر رد: asemshahen5
Rainbow [كود] بعض خواص قواعد البيانات اسامه الهرماوي 2 2,900 13-10-18, 01:39 AM
آخر رد: اسامه الهرماوي
  حساب قيمة معادلة(اقصد صيغة دون مجاهيل) مكتوبة بالتكست : الجزء الخامس والاخير محمد شريقي 4 4,517 23-02-18, 10:44 PM
آخر رد: العواد الصغير
  [درس فيديو] شرح ربط البرنامج بقاعدة بيانات, إدراج حذف تعديل جلب البيانات ( بدون أن تكتب سطر واحد) عبدالله الدوسري 4 6,449 08-02-18, 12:55 AM
آخر رد: Ameer Eagle
  Data Marshall silverlight 2 1,987 20-09-17, 01:48 PM
آخر رد: silverlight

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


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