Stogovi su linearne podatkovne strukture koje slijede princip LIFO-a. LIFO je kratica za posljednji ušao prvi izašao što znači da je posljednja dodana stavka prva koja će biti uklonjena. Ova struktura podataka naziva se hrpa kao analogija s hrpom u stvarnom svijetu, npr. hrpa kolačića u staklenci za kolačiće ili hrpa knjiga na polici. U hrpu se umetanje i vađenje može obaviti samo na jednom kraju, tj. na vrhu hrpe. Na primjer, ako želimo pojesti kolačić, prvo ćemo dobiti gornji, zatim drugi i tako dalje.
Ovaj post će biti sve o implementaciji stack u JavaScript. Budući da radimo s JavaScriptom, nećemo se brinuti o veličini hrpe jer veličina JavaScript objekata može dinamički rasti.
Implementacija Stacka u JavaScriptu
Koristit ćemo JavaScript klasu za implementaciju strukture podataka stog. The stog klasa će sadržavati niz u svom konstruktoru koji će se koristiti za pohranu elemenata u stog. Klasa će također definirati različite metode koje će se koristiti za manipuliranje podacima pohranjenim unutar stoga. Najosnovnije metode niza su umetnuti() i ekstrakt() metode koje se koriste za dodavanje i uklanjanje elemenata s vrha stoga.
The stog klasa također definira druge metode kao što su zaviriti() , prazno je() , čisto() , ispis() i veličina() također:
hrpa klasa {
konstruktor ( ) {
ovo.elementi = [ ] ;
}
// Stavlja stavku na vrh hrpe
umetnuti ( element ) {
ovaj.elementi.gurati ( element ) ;
}
// Uklanja stavku s vrha hrpe
ekstrakt ( ) {
ovo.elementi.pop ( ) ;
}
// Vraća najviši element snopa
zaviriti ( ) {
povratak ovo.elementi [ this.elements.length - 1 ] ;
}
// Čekovi ako stog je prazan
prazno je ( ) {
povratak this.elements.length == 0 ;
}
// Ispisuje cijeli snop
ispisati ( ) {
za ( neka ja = 0 ; ja < ovaj.elementi.duljina; i++ ) {
konzola.log ( ovo.elementi [ ja ] ) ;
}
}
// Vraća veličina od hrpe
veličina ( ) {
povratak ovaj.elementi.duljina;
}
// čisti stog
čisto ( ) {
ovo.elementi = [ ] ;
}
}
Guranje i iskakanje elemenata iz hrpe
Najosnovnija operacija snopa je umetanje i izdvajanje elemenata s vrha snopa. Klasa stog nudi dvije metode za ove operacije:
Prvi redak gore navedenog koda deklarira novi stog pod nazivom s . Onda umetnuti() koristi se za umetanje četiri elementa u hrpu, od kojih se dva zatim uklanjaju ekstrakt() metoda.
Kako dobiti gornji element iz hrpe
The stog klasa definira zaviriti() metoda za dobivanje gornjeg elementa iz hrpe:
Kako provjeriti je li stog prazan?
Klasa također definira metodu koja se može koristiti za provjeru je li stog prazan:
Kako ispisati cijelu hrpu?
The ispis() metoda se može pozvati za ispis cijelog hrpa
Kako provjeriti veličinu hrpe?
The veličina() metoda koristi .duljina svojstvo za dobivanje veličine stoga:
Kako očistiti cijeli stog?
Jednostavno pozovite čisto() metoda za uklanjanje svakog elementa snopa:
Zaključak
Skupovi su korisne strukture podataka s mnogim aplikacijama iz stvarnog svijeta kao što su povijest preglednika, gumb za poništavanje u uređivačima teksta i zapisnici poziva. Sve te aplikacije slijede LIFO princip, npr. gumb za povratak u pregledniku vraća na posljednju posjećenu stranicu, a prvi unos u zapisniku poziva uvijek je zadnji poziv.
Implementacija stacka u JavaScriptu vrlo je jednostavna jer ima ugrađenu gurnuti i pop metode za nizove. Ovaj članak demonstrira proces implementacije stoga u JavaScriptu.