Hogyan Tisztítsuk Meg A Verem

Hogyan Tisztítsuk Meg A Verem
Hogyan Tisztítsuk Meg A Verem

Tartalomjegyzék:

Anonim

Az egyik olyan adatstruktúra, amelyet manapság széles körben használnak az alkalmazás programozásában, a verem. Különlegessége az elemek szervezésének elve, amelyben hozzáadásuk és eltávolításuk csak egyenként és csak a "tetején" keresztül, vagyis a LIFO elv szerint lehetséges. De néha szükség van a teljes verem törlésére egyszerre.

Hogyan tisztítsuk meg a verem
Hogyan tisztítsuk meg a verem

Szükséges

  • - szövegszerkesztő vagy IDE;
  • - fordító a használt programozási nyelvről.

Utasítás

1. lépés

Használjon olyan módszereket a veremobjektumokon, amelyeket kifejezetten a verem tisztítására terveztek. Különböző könyvtárak és keretrendszerek megfelelő osztályainak többségében vannak jelen. Például a. NET Stack osztály rendelkezik Clear módszerrel. Példa a C # alkalmazásban így nézhet ki:

Verem oStack = új Verem (); // veremobjektum létrehozása

oStack. Push ("000"); // töltse ki a verem

oStack. Push ("111");

oStack. Clear (); // a verem törlése

2. lépés

A konténerosztályok elemeinek számának megváltoztatására szolgáló módszerek, amelyekre gyakran épül a veremosztályok funkcionalitása, szintén használhatók a tisztításhoz. Csak nullára kell csökkentenie a jelenlegi elemek számát. Például a Qt sablon osztály, a QStack örökli a QVector sablon osztályt, amelynek átméretezési módja van. Használatára példa lehet a következő:

QStack oStack; // a verem objektum deklarációja

for (int i = 0; i <10; i ++) oStack.push (i); // töltse ki a verem

oStack.resize (0); // a verem törlése

3. lépés

A veremobjektum megtisztítása általában a hozzárendelés operátoron keresztül történhet, amelyet gyakran a megfelelő osztályokban valósítanak meg. Ehhez a törlendő verem objektumához ideiglenes objektumot kell rendelni, amelyet az alapértelmezett konstruktor hozott létre. Például a C ++ Standard Library verem sablonosztály, amely a konténersablonok osztályainak illesztője, nem rendelkezik módszerekkel a szám önkényes megváltoztatására vagy az összes elem eltávolítására. Így törölheti:

std:: stack <int, std:: list> oStack; // a verem objektum deklarációja

for (int i = 0; i <10; i ++) oStack.push (i); // töltse ki a verem

oStack = std:: stack(); // a verem törlés

4. lépés

Törölje a veremobjektumot úgy, hogy meghívja a másolatkészítőt az új operátor segítségével az alapértelmezett konstruktor által létrehozott objektum argumentummal:

std:: stack <int, std:: list> oStack; // a verem objektum deklarációja

for (int i = 0; i <10; i ++) oStack.push (i); // töltse ki a verem

new std:: stack(oStack); // a verem törlés

5. lépés

A verem az összes elem szekvenciális lekérésével a megfelelő módszerekkel törölhető:

std:: stack <int, std:: list> oStack; // a verem objektum deklarációja

for (int i = 0; i <10; i ++) oStack.push (i); // töltse ki a verem

míg (! oStack.empty ()) oStack.pop (); // törölje a verem

Ennek a megközelítésnek azonban időbeli összetettsége van, amely lineárisan függ a veremben lévő elemek számától. Ezért használata nem racionális.

Ajánlott: