یکی از انواع ساختارهای داده که امروزه به طور گسترده در برنامه نویسی برنامه ها استفاده می شود ، پشته است. ویژگی خاص آن اصل سازماندهی عناصر است که در آن افزودن و حذف آنها فقط یکبار و فقط از طریق "بالا" ، یعنی مطابق با اصل LIFO امکان پذیر است. اما گاهی اوقات لازم است که کل پشته را یک باره پاک کنید.
ضروری است
- - ویرایشگر متن یا IDE ؛
- - یک مترجم از زبان برنامه نویسی مورد استفاده
دستورالعمل ها
مرحله 1
روی اشیا st پشته از روشهایی استفاده کنید که به طور خاص برای تمیز کردن پشته طراحی شده اند. آنها در بیشتر کلاسهای متناظر با کتابخانه ها و چارچوبهای مختلف وجود دارند. به عنوان مثال ، کلاس. NET Stack یک روش Clear دارد. نمونه ای از کاربرد آن در C # ممکن است به صورت زیر باشد:
پشته 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
تمیز کردن یک شی پشته معمولاً از طریق عملگر انتساب انجام می شود که اغلب در کلاس های مربوطه اجرا می شود. برای انجام این کار ، شی the پشته ای که باید پاک شود باید یک شی temporary موقتی ایجاد شود که توسط سازنده پیش فرض ایجاد شده است. به عنوان مثال ، کلاس + Stack templates C ++ Standard Library ، که آداپتور کلاسهای قالب دار کانتینر است ، روشهایی برای تغییر خودسرانه تعداد یا حذف همه عناصر ندارد. می توانید اینگونه پاک کنید:
std:: stack <int، std:: list> oStack؛ // اعلامیه شی پشته
برای (int i = 0؛ i <10؛ i ++) oStack.push (i)؛ // پشته را پر کنید
oStack = std:: پشته
مرحله 4
با فراخوانی سازنده کپی با استفاده از عملگر جدید با آرگومان شیئی که توسط سازنده پیش فرض ایجاد شده است ، شی پشته را پاک کنید:
std:: stack <int، std:: list> oStack؛ // اعلامیه شی پشته
برای (int i = 0؛ i <10؛ i ++) oStack.push (i)؛ // پشته را پر کنید
std جدید:: پشته
مرحله 5
با بازیابی متوالی همه عناصر با استفاده از روش های مناسب می توان پشته را پاک کرد:
std:: stack <int، std:: list> oStack؛ // اعلام شی پشته
برای (int i = 0؛ i <10؛ i ++) oStack.push (i)؛ // پشته را پر کنید
while (! oStack.empty ()) oStack.pop ()؛ // پشته را پاک کنید
با این حال ، این روش دارای پیچیدگی زمانی است که به طور خطی به تعداد عناصر موجود در پشته بستگی دارد. بنابراین ، استفاده از آن منطقی نیست.