Stack megvalósítása JavaScriptben

Stack Megvalositasa Javascriptben



A veremek lineáris adatstruktúrák, amelyek a LIFO elvét követik. A LIFO jelentése last in first out, ami azt jelenti, hogy a legutóbb hozzáadott elem lesz az első, amelyet eltávolítanak. Ezt az adatszerkezetet veremnek nevezik a valós világban lévő halmok analógiájaként, például egy halom cookie-t egy süteményedényben vagy egy köteg könyvet a könyvespolcon. A veremben a behelyezés és a kihúzás csak az egyik végén, azaz a verem tetején végezhető el. Például, ha sütit akarunk enni, először a felsőt kapjuk, majd a másodikat és így tovább.

Ez a bejegyzés a verem JavaScriptben való megvalósításáról fog szólni. Miközben JavaScripttel dolgozunk, nem fogunk aggódni a verem mérete miatt, mivel a JavaScript objektumok mérete dinamikusan nőhet.







Stack implementációja JavaScriptben

A verem adatszerkezet megvalósításához JavaScript osztályt fogunk használni. Az Kazal osztály egy tömböt tartalmaz a konstruktorában, amely a veremben lévő elemek tárolására szolgál. Az osztály különböző módszereket is meghatároz, amelyek a veremben tárolt adatok manipulálására szolgálnak. A tömb legalapvetőbb módszerei a insert() és kivonat() módszerek, amelyek segítségével elemeket adnak hozzá és távolítanak el a verem tetejéről.



Az Kazal osztály más metódusokat is definiál, mint pl kandikál() , üres() , egyértelmű() , nyomtatás() és méret() is:



osztályú verem {
konstruktőr ( ) {

ezt.elemek = [ ] ;

}

// Elhelyez egy elemet a köteg tetejére

betét ( elem ) {

ez.elemek.nyomja ( elem ) ;

}

// Eltávolít egy elemet a köteg tetejéről

kivonat ( ) {

ez.elemek.pop ( ) ;

}

// A verem legfelső elemét adja vissza

kandikál ( ) {

Visszatérés ezt.elemek [ this.elements.length - 1 ] ;

}
// Ellenőrzések ha a verem üres

üres ( ) {

Visszatérés ez.elemek.hossz == 0 ;

}

// Kinyomtatja a teljes köteget

nyomtatás ( ) {
számára ( hagyja i = 0 ; én < this.elements.length; i++ ) {
console.log ( ezt.elemek [ én ] ) ;
}

}
// Visszaadja a méret a veremből

méret ( ) {

Visszatérés this.elements.length;

}

// törli a köteget

egyértelmű ( ) {
ez.elemek = [ ] ;
}

}





Elemek tolása és felpattanása a veremből

A verem legalapvetőbb művelete az elemek behelyezése és kiemelése a verem tetejéről. A veremosztály két módszert biztosít ezekhez a műveletekhez:


A fent említett kód első sora deklarál egy új nevű veremet s . Aztán a insert() módszerrel négy elemet helyeznek be a verembe, amelyek közül kettőt azután eltávolít a kivonat() módszer.



Hogyan vegyük ki a legfelső elemet a veremből

Az Kazal osztály határozza meg a kandikál() módszer a legfelső elem kinyerésére a veremből:


Hogyan ellenőrizhető, hogy a verem üres-e?

Az osztály meghatároz egy metódust is, amellyel ellenőrizhető, hogy a verem üres-e:


Hogyan kell kinyomtatni a teljes köteget?

Az nyomtatás() metódus hívható a teljes verem kinyomtatására


Hogyan ellenőrizhető a köteg mérete?

Az méret() módszer a .hossz tulajdonság a verem méretének kiszámításához:


Hogyan lehet törölni az egész köteget?

Egyszerűen hívja fel a egyértelmű() módszer a verem minden elemének eltávolítására:

Következtetés

A veremek hasznos adatstruktúrák számos valós alkalmazáshoz, például a böngészési előzményekhez, a szövegszerkesztők visszavonása gombjához és a hívásnaplókhoz. Ezen alkalmazások mindegyike a LIFO elvet követi, például a böngésző vissza gombja visszalép az utoljára meglátogatott oldalra, és a hívásnapló első bejegyzése mindig a legutóbbi hívás.

A verem megvalósítása a JavaScriptben nagyon egyszerű, mivel rendelkezik beépített nyom és pop metódusok tömbökhöz. Ez a cikk a verem JavaScriptben való megvalósításának folyamatát mutatja be.