يعد المكدس أحد أنواع هياكل البيانات المستخدمة على نطاق واسع اليوم في برمجة التطبيقات. خصوصيتها هي مبدأ تنظيم العناصر ، حيث يمكن إضافتها وإزالتها واحدًا تلو الآخر وفقط من خلال "القمة" ، أي وفقًا لمبدأ LIFO. لكن في بعض الأحيان يكون من الضروري مسح المكدس بالكامل مرة واحدة.
ضروري
- - محرر نصوص أو IDE ؛
- - مترجم من لغة البرمجة المستخدمة.
تعليمات
الخطوة 1
استخدم طرقًا على كائنات المكدس المصممة خصيصًا لتنظيف المكدس. هم موجودون في معظم الفئات المقابلة للمكتبات والأطر المختلفة. على سبيل المثال ، تحتوي فئة. NET Stack على طريقة مسح. مثال على تطبيقه في C # قد يبدو كالتالي:
Stack oStack = مكدس جديد () ؛ // إنشاء كائن مكدس
oStack. Push ("000") ؛ // ملء المكدس
oStack. Push ("111") ؛
oStack. Clear () ، // امسح المكدس
الخطوة 2
يمكن أيضًا استخدام طرق تغيير عدد عناصر فئات الحاويات ، والتي تُبنى عليها وظائف فئات المكدس غالبًا ، للتنظيف. تحتاج فقط إلى تقليل العدد الحالي للعناصر إلى الصفر. على سبيل المثال ، ترث فئة قالب Qt QStack من فئة قالب QVector ، والتي تحتوي على طريقة تغيير الحجم. مثال على استخدامه يمكن أن يكون مثل هذا:
QStack oStack ؛ // إعلان كائن المكدس
لـ (int i = 0 ؛ i <10 ؛ i ++) oStack.push (i) ؛ // ملء المكدس
oStack.resize (0) ؛ // امسح المكدس
الخطوه 3
يمكن عادةً تنظيف كائن مكدس من خلال عامل التعيين ، والذي يتم تنفيذه غالبًا في الفئات المقابلة. للقيام بذلك ، يجب تعيين كائن مؤقت تم إنشاؤه بواسطة المُنشئ الافتراضي لكائن المكدس المراد مسحه. على سبيل المثال ، لا تحتوي فئة C ++ Standard Library stack Templated class ، وهي عبارة عن محول لفئات قوالب الحاوية ، على طرق لتغيير الرقم بشكل تعسفي أو إزالة جميع العناصر. يمكنك مسحه على النحو التالي:
std:: stack <int، std:: list> oStack؛ // إعلان كائن المكدس
لـ (int i = 0 ؛ i <10 ؛ i ++) oStack.push (i) ؛ // ملء المكدس
oStack = الأمراض المنقولة جنسياً:: مكدس
الخطوة 4
امسح كائن المكدس عن طريق استدعاء مُنشئ النسخة باستخدام عامل التشغيل الجديد مع وسيطة كائن تم إنشاؤها بواسطة المُنشئ الافتراضي:
std:: stack <int، std:: list> oStack؛ // إعلان كائن المكدس
لـ (int i = 0 ؛ i <10 ؛ i ++) oStack.push (i) ؛ // ملء المكدس
الأمراض المنقولة جنسيا الجديدة:: مكدس
الخطوة الخامسة
يمكن مسح المكدس عن طريق الاسترداد المتسلسل لجميع العناصر باستخدام الطرق المناسبة:
std:: stack <int، std:: list> oStack؛ // إعلان كائن المكدس
لـ (int i = 0 ؛ i <10 ؛ i ++) oStack.push (i) ؛ // ملء المكدس
while (! oStack.empty ()) oStack.pop () ؛ // امسح المكدس
ومع ذلك ، فإن هذا النهج له تعقيد زمني يعتمد خطيًا على عدد العناصر في المكدس. لذلك ، فإن استخدامه ليس عقلانيًا.