تصفح الدليل

ملخص Stack للمقابلات البرمجية

مقدمة

الـStack هو نوع بيانات مجرد يدعم عمليتي الإدخال (push)، أي إدراج عنصر جديد في قمة الـStack، والإخراج (pop)، أي إزالة وإرجاع آخر عنصر أُضيف مؤخراً، وهو العنصر الموجود في قمة الـStack. وبوصفه نوع بيانات مجرداً، يمكن تنفيذ الـStack باستخدام الـArrays أو الـLinked Lists الأحادية.

يُعرف هذا السلوك عادةً باسم LIFO (آخر ما يدخل هو أول ما يخرج). وجاء اسم «الـStack» لهذا النوع من البنى من تشبيهه بمجموعة من الأغراض المادية المكدّسة فوق بعضها.

تُعد الـStacks وسيلة مهمة لدعم استدعاءات الدوال المتداخلة أو التعاودية، وتُستخدم لتنفيذ DFS. ويمكن تنفيذ DFS باستخدام التعاود أو Stack يدوي.

مصادر التعلم

التطبيقات الجاهزة

اللغةAPI
C++std::stack
Javajava.util.Stack
Pythonيُحاكى باستخدام List
JavaScriptيُحاكى باستخدام Array

الـtime complexity

العمليةBig-O
الاطلاع على القمةO(1)
الإدخالO(1)
الإخراجO(1)
فحص الفراغO(1)
البحثO(n)

الحالات الحدّية

  • Stack فارغ. الإخراج من Stack فارغ
  • Stack فيه عنصر واحد
  • Stack فيه عنصران

أسئلة أساسية

هذه أسئلة أساسية للتدريب عليها إذا كنت تدرس هذا الموضوع.

أسئلة تدريب موصى بها

هذه أسئلة موصى بالتدريب عليها بعد أن تدرس الموضوع وتتدرب على الأسئلة الأساسية.

المصدر والرخصة

هذه الصفحة منسوخة من Tech Interview Handbook للمؤلف يانغشون تاي (Yangshun Tay)، النسخة المرجعية e1d28e8، وتُستخدم بموجب رخصة MIT — حقوق النشر (c) 2017-Present ليانغشون تاي. نص الرخصة محفوظ محلياً في /licenses/tech-interview-handbook.txt.