Stacks jsou lineární datové struktury, které se řídí principem LIFO. LIFO znamená poslední dovnitř, první ven, což znamená, že poslední přidaná položka je první, která má být odstraněna. Tato datová struktura se nazývá zásobník jako analogie k zásobníkům ze skutečného světa, např. zásobníku sušenek ve sklenici na sušenky nebo zásobníku knih na poličce. Ve stohu lze vkládání a vyjímání provádět pouze na jednom konci, tj. na vrcholu stohu. Chceme-li například sníst sušenku, dáme si nejprve vrchní a pak 2. a tak dále.
Tento příspěvek bude celý o implementaci zásobníku v JavaScriptu. Při práci s JavaScriptem se nebudeme obávat velikosti zásobníku, protože velikost objektů JavaScriptu může dynamicky růst.
Implementace Stacku v JavaScriptu
K implementaci datové struktury zásobníku použijeme třídu JavaScript. The zásobník class bude ve svém konstruktoru obsahovat pole, které bude použito k ukládání prvků do zásobníku. Třída bude také definovat různé metody, které budou použity k manipulaci s daty uloženými v zásobníku. Nejzákladnější metody pole jsou vložit() a výpis() metody, které se používají k přidávání a odebírání prvků z horní části zásobníku.
The zásobník třída definuje i další metody jako např nahlédnout () , je prázdný() , Průhledná() , tisk() a velikost() také:
zásobník třídy {
konstruktér ( ) {
toto.prvky = [ ] ;
}
// Umístí předmět na vrch hromádky
vložit ( živel ) {
toto.prvky.tlačí ( živel ) ;
}
// Odebere položku z horní části zásobníku
výpis ( ) {
toto.prvky.pop ( ) ;
}
// Vrátí nejvyšší prvek zásobníku
nahlédnout ( ) {
vrátit se toto.prvky [ this.elements.length - 1 ] ;
}
// Kontroly -li zásobník je prázdný
je prázdný ( ) {
vrátit se délka těchto.prvků == 0 ;
}
// Vytiskne celý stoh
tisk ( ) {
pro ( nechat i = 0 ; i < délka tohoto.prvků; i++ ) {
konzole.log ( toto.prvky [ i ] ) ;
}
}
// Vrátí velikost ze zásobníku
velikost ( ) {
vrátit se délka tohoto.prvků;
}
// vymaže zásobník
Průhledná ( ) {
toto.prvky = [ ] ;
}
}
Push a Popping prvky ze zásobníku
Nejzákladnější operací stohu je vkládání a vyjímání prvků z horní části stohu. Třída zásobníku poskytuje dvě metody pro tyto operace:
První řádek výše uvedeného kódu deklaruje nový zásobník s názvem s . Potom vložit() metoda se používá k vložení čtyř prvků do stohu, z nichž dva jsou poté odstraněny výpis() metoda.
Jak získat horní prvek ze zásobníku
The zásobník třída definuje nahlédnout () metoda, jak získat horní prvek ze zásobníku:
Jak zkontrolovat, zda je zásobník prázdný?
Třída také definuje metodu, kterou lze použít ke kontrole, zda je zásobník prázdný:
Jak vytisknout celý stoh?
The tisk() lze volat metodu pro tisk celého zásobníku
Jak zkontrolovat velikost zásobníku?
The velikost() metoda využívá .délka vlastnost pro získání velikosti zásobníku:
Jak vyčistit celý zásobník?
Jednoduše vyvolejte Průhledná() metoda k odstranění všech prvků zásobníku:
Závěr
Zásobníky jsou užitečné datové struktury s mnoha aplikacemi v reálném světě, jako je historie prohlížeče, tlačítko Zpět v textových editorech a protokoly hovorů. Všechny tyto aplikace se řídí principem LIFO, např. tlačítkem Zpět v prohlížeči se vrátíte na poslední navštívenou stránku a první záznam v protokolu hovorů je vždy poslední hovor.
Implementace zásobníku v JavaScriptu je opravdu snadná, protože má vestavěný TLAČIT a pop metody pro pole. Tento článek demonstruje proces implementace zásobníku v JavaScriptu.