English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في مجال علوم الكمبيوتر، نحن نعمل على أنواع مختلفة من البرامج. لكل منهم مجالهم وأدواتهم. بناءً على هدف إنشاء البرنامج والبيئة، لدينا العديد من بنيات البيانات المتاحة للاختيار. واحدة من بينها هي "الدفعة". قبل مناقشة هذا النوع من البيانات، دعونا نرى نحوها.
template<class T, class Container = deque<T> > class stack;
يستخدم هذا بنية البيانات تقنية LIFO، حيث يرمز LIFO إلى آخر إدخال أولاً الخروج. سيتم استخراج العنصر الذي تم إدراجه أولاً من نهاية البيانات، وهكذا. هناك عنصر يُدعى "top"، وهو العنصر الموجود في أعلى الموقع. تتم جميع العمليات الإدراج والإزالة على العنصر في أعلى عنصر الدفعة.
يُشير堆يد التطبيق إلى محول الحاويات.
البرنامج يجب أن يدعم قائمة العمليات التالية:
empty
size
back
push_back
pop_back
Tيحدد النوع الذي سيحتفظ به مكون الكتلة.
Containerيحدد العنصر الداخلي للكتلة الذي يحتوي على عناصر الدفعة.
يقدم أدناه قائمة بأنواع أعضاء الدفعة مع وصفها القصير.
نوع الأعضاء | وصف |
---|---|
value_type | يحدد نوع العنصر. |
container_type | يحدد نوع الكتلة الأساسية. |
size_type | يحدد نطاق حجم العنصر. |
باستخدام الدوال، يمكن استخدام الكائنات أو المتغيرات في مجال البرمجة. توفر الدفعة العديد من الدوال التي يمكن استخدامها أو تعميمها في البرنامج.
دالة | وصف |
---|---|
(constructor) | يستخدم هذا الدالة لبناء كتلة الدفعة. |
empty | يستخدم هذا الدالة لتجربة ما إذا كانت الدفعة فارغة. إذا كانت الدفعة فارغة، فإن هذه الدالة تعود بالقيمة true، وإلا تعود بالقيمة false. |
size | يستخدم هذا الدالة لتحديد حجم كتلة الدفعة، وهو مقياس عدد العناصر المحفوظة في الدفعة. |
top | يستخدم هذا الدالة لاستقبال العنصر في القمة للدفعة. يلعب هذا العنصر دورًا مهمًا جدًا، لأن جميع العمليات الإدراج والإزالة تتم على العنصر في القمة. |
push | يستخدم هذا الدالة لإدراج عنصر جديد في القمة للدفعة. |
pop | يستخدم هذا الدالة لإزالة العنصر، يتم إزالة العنصر من القمة في الدفعة. |
emplace | يستخدم هذا الدالة لإدراج عنصر جديد في الدفعة فوق العنصر الحالي في القمة. |
swap | يستخدم هذا الدالة لتبادل محتويات المراكز المرجعية لكتلين. |
relational operators | تعين غير الأعضاء عمليات العلاقات المطلوبة للدفعة. |
uses allocator<stack> | كما يوحي الاسم، يستخدم غير الأعضاء مدير الذاكرة للدفعة. |
#include <iostream> #include <stack> using namespace std; void newstack(stack <int> ss) { stack <int> sg = ss; while (!sg.empty()) { cout << '\t' << sg.top(); sg.pop(); } cout << '\n'; } int main () { stack <int> newst; newst.push(55); newst.push(44); newst.push(33); newst.push(22); newst.push(11); cout << ":آخر دفعة هي: "; newstack(newst); cout << "\n newst.size() : " << newst.size(); cout << "\n newst.top() : " << newst.top(); cout << "\n newst.pop() : "; newst.pop(); newstack(newst); return 0; }
الإخراج:
أحدث القمم هي : 11 22 33 44 55 newst.size() : 5 newst.top() : 11 newst.pop() : 22 33 44 55