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.
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
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
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.