چگونه پشته را پاک کنیم

فهرست مطالب:

چگونه پشته را پاک کنیم
چگونه پشته را پاک کنیم

تصویری: چگونه پشته را پاک کنیم

تصویری: چگونه پشته را پاک کنیم
تصویری: باز کــردن پسورد فرامــوش شده موبایل توسط کود........./mowj media 2024, نوامبر
Anonim

یکی از انواع ساختارهای داده که امروزه به طور گسترده در برنامه نویسی برنامه ها استفاده می شود ، پشته است. ویژگی خاص آن اصل سازماندهی عناصر است که در آن افزودن و حذف آنها فقط یکبار و فقط از طریق "بالا" ، یعنی مطابق با اصل 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 جدید:: پشته(oStack) ؛ // پشته را پاک کنی

مرحله 5

با بازیابی متوالی همه عناصر با استفاده از روش های مناسب می توان پشته را پاک کرد:

std:: stack <int، std:: list> oStack؛ // اعلام شی پشته

برای (int i = 0؛ i <10؛ i ++) oStack.push (i)؛ // پشته را پر کنید

while (! oStack.empty ()) oStack.pop ()؛ // پشته را پاک کنید

با این حال ، این روش دارای پیچیدگی زمانی است که به طور خطی به تعداد عناصر موجود در پشته بستگی دارد. بنابراین ، استفاده از آن منطقی نیست.

توصیه شده: