x32x01
  • بواسطة x32x01 ||
يعنى ايه Stack وليه يعتبر اكتر data structure مستخدمة فى كل التطبيقات والمواقع اللى بنستخدمها كل يوم ؟!!
اهلا بيك عزيزى المبرمج النهاردة هنتكلم عن ال Stack
وايه الدوال الاساسية فى استخدامه
وايه اهميته واستخداماته فى كل التطبيقات والمواقع اللى بنستخدمها كل يوم
خلينا كالعادة نضرب مثال نفهم منه يعنى ايه Stack

تخيل كدا انك معاك مجموعة كتب محطوطة فوق بعضها وانتا عايز تحط كتاب زيادة على مجموعة الكتب دى او تاخد كتاب منهم
- لما تيجى تحط الكتاب فوق مجموعة الكتب دى فانتا هتلاقى انك مفيش عندك الا طريقة واحدة وهى انك تحط الكتاب فوق مجموعة الكتب دى
- لما تيجى تاخد كتاب من مجموعة الكتب دى فانتا هتلاقى انك مفيش عندك الا طريقة واحدة وهيا انك تاخد اخر كتاب فوق مجموعة الكتب دى ( بالله عليكوا محدش يقولى انا ممكن اسحب كتاب من النص )
- وبالتالى انتا هتلاحظ ان اخر كتاب انتا بتحطه على مجموعة الكتب دى هو اول كتاب بتاخده من مجموعة الكتب دى

خلينا بقا نرجع لل Data structure ونفهم يعنى ايه Stack
- ال Stack هو الطريقة اللى مترتب بيها مجموعة الكتب فى المثال اللى عندنا ده
- مجموعة البيانات اللى بنخزنها فى ال Stack هيا عبارة عن الكتب اللى موجودة فى المثال بتاعنا ده
- ال Stack ماشى بمبدأ اسمه ( LIFO ) وهو اختصار ل ( last in first out ) والمبدأ ده عبارة عن ان ( اخر عنصر بيدخل ليه هو اول عنصر بيخرج منه وده بالظبط اللى حصل فى المثال بتاعنا لما كنا عايزين ناخد كتاب من الكتب دى )
- ال Stack لازم يكون فيه مؤشر بيعرفنا ايه هو اعلى عنصر موجودة فيه ( والعنصر ده هو اللى احنا هنضيف عليه او هنشيله ) والمؤشر ده بنسميه فى الغالب Top
- ال Stack بيكون فيه دالتين اساسيتين وهما :
أ - push : ومعناها ( دفع ) ودى الدالة اللى بنستخدمها لما تحب تضيف عنصر جديد لل Stack بتاعنا
ومهمتها انها تضيف العنصر الجديد فوق اخر عنصر موجود فى ال Stack بتاعنا
وكمان تخلى ال Top بتاعنا يشير على اخر عنصر ( اللى هو العنصر اللى ضيفناه )
ب - pop : ودى الدالة اللى بنستخدمها لما تحب تاخد او تحذف عنصر من ال Stack بتاعنا
ومهمتها انها بتحذف اخر عنصر موجود فى ال Stack بتاعنا وبترجعلك العنصر ده
وكمان تخلى ال Top بتاعنا يشير على اخر عنصر ( اللى هو العنصر اللى قبل العنصر اللى احنا حذفناه )

طب احنا ازاى ممكن ننشئ ال Stack ؟!!
- احنا ممكن ننشئ ال Stack باستخدام نوعين تانين من ال data structure وهما :
أ - Array ( ودى عيبها ان ال Stack بتاعنا بيكون Fixed size يعنى طوله ثابت بمجرد ما نحدد طوله مينفعش نغيره )
ب - Linked list ( ودى ميزتها عن ال Array ان ال Stack بتاعنا بيكون dynamic size يعنى طوله مش ثابت وممكن نزود عليه عادى )

طب ايه بقا استخدامات ال Stack فى كل التطبيقات والمواقع اللى بنستخدمها كل يوم ؟!!
- تخيل كدا انك بتتصفح فى الفيسبوك ودخلت على صفحة صديق عندك ودخلت بعده على صفحات 10 اصدقاء عن صديقك ده
- وبعد كدا جيت تدوس على زرار الرجوع هتلاقيه بيرجعك على كل الصفحات اللى انتا فتحتها بس بالترتيب

هو هنا بيضيف كل الصفحات اللى انتا فتحتها لحاجه اسمها back stack وشبه ال stack بالظبط ولما بتدوس رجوع فهو بيفضل يعمل pop للصفحات اللى موجودة فى ال stack ويظهرهالك
وكمان لما بتكون بتكتب حاجه وتمسح كلمة وعايز ترجعها فبتدوس Ctrl + z
هو هنا بردو بيستخدم ال Stack
 
الوسوم : الوسوم
data structure stack

الدخول أو التسجيل السريع

نسيت كلمة مرورك؟

آخر المشاركات

أحدث المنتجات

إحصائيات المنتدى

المواضيع
1,424
المشاركات
1,587
أعضاء أكتب كود
174
أخر عضو
omega-tron
عودة
أعلى