Jinsi Ya Kufuta Stack

Orodha ya maudhui:

Jinsi Ya Kufuta Stack
Jinsi Ya Kufuta Stack

Video: Jinsi Ya Kufuta Stack

Video: Jinsi Ya Kufuta Stack
Video: Jinsi ya Kupost Maneno Yenye Rangi Facebook 2024, Novemba
Anonim

Moja ya aina ya miundo ya data ambayo hutumiwa sana leo katika programu ya programu ni stack. Upekee wake ni kanuni ya kuandaa vitu, ambavyo kuongeza na kuondolewa kwao kunawezekana moja kwa wakati na tu kupitia "juu", ambayo ni, kulingana na kanuni ya LIFO. Lakini wakati mwingine inahitajika kusafisha safu nzima mara moja.

Jinsi ya kufuta stack
Jinsi ya kufuta stack

Muhimu

  • - mhariri wa maandishi au IDE;
  • - mtafsiri kutoka kwa lugha inayotumika ya programu.

Maagizo

Hatua ya 1

Tumia njia kwenye vitu vya stack ambavyo vimeundwa mahsusi kusafisha lishe. Wapo katika anuwai ya madarasa yanayofanana ya maktaba na mifumo. Kwa mfano, darasa la. NET Stack lina njia wazi. Mfano wa matumizi yake katika C # inaweza kuonekana kama hii:

Stack oStack = Stack mpya (); // tengeneza kitu cha stack

Push ("000"); // jaza stack

OStack. Sukuma ("111");

OStack. Clear (); // futa stack

Hatua ya 2

Njia za kubadilisha idadi ya vitu vya madarasa ya kontena, ambayo utendaji wa madarasa ya stack hujengwa mara nyingi, pia inaweza kutumika kwa kusafisha. Unahitaji tu kupunguza idadi ya sasa ya vitu hadi sifuri. Kwa mfano, darasa la kiolezo cha Qt QStack hurithi kutoka kwa darasa la templeti ya QVector, ambayo ina njia ya kubadilisha ukubwa. Mfano wa matumizi yake inaweza kuwa kama hii:

Hifadhi ya QStack; // tamko la kitu cha stack

kwa (int i = 0; i <10; i ++) oStack. Push (i); // jaza stack

ukubwa wa oStack (0); // futa stack

Hatua ya 3

Kusafisha kitu cha stack kawaida kunaweza kufanywa kupitia operesheni ya mgawo, ambayo mara nyingi hutekelezwa katika darasa linalolingana. Ili kufanya hivyo, kitu cha ghala kitakachoondolewa lazima kipewe kitu cha muda kilichoundwa na mjenzi chaguomsingi. Kwa mfano, safu ya C ++ ya kiwango cha Maktaba ya kawaida, ambayo ni adapta ya madarasa yaliyopangwa na kontena, haina njia za kubadilisha idadi kiholela au kuondoa vitu vyote. Unaweza kuifuta kama hii:

std:: stack <int, std:: orodha> oStack; // tamko la kitu cha stack

kwa (int i = 0; i <10; i ++) oStack. Push (i); // jaza stack

oStack = std:: stack(); // futa stac

Hatua ya 4

Futa kitu cha stack kwa kumwita mjenzi wa nakala ukitumia mwendeshaji mpya na hoja ya kitu iliyoundwa na mjenzi wa msingi:

std:: stack <int, std:: orodha> oStack; // tamko la kitu cha stack

kwa (int i = 0; i <10; i ++) oStack. Push (i); // jaza stack

mpya std:: stack(oStack); // futa stac

Hatua ya 5

Rafu inaweza kusafishwa kwa kurudisha vipengee vyote kwa kutumia njia zinazofaa:

std:: stack <int, std:: orodha> oStack; // tamko la kitu cha stack

kwa (int i = 0; i <10; i ++) oStack. Push (i); // jaza stack

wakati (! oStack.empty ()) oStack.pop (); // futa stack

Walakini, njia hii ina ugumu wa wakati ambao linearly inategemea idadi ya vitu kwenye stack. Kwa hivyo, matumizi yake sio ya busara.

Ilipendekeza: