Stackai yra linijinės duomenų struktūros, kurios vadovaujasi LIFO principu. LIFO reiškia paskutinis pirmas, o tai reiškia, kad paskutinis pridėtas elementas yra pirmasis, kuris pašalinamas. Ši duomenų struktūra vadinama krūva kaip analogija realaus pasaulio kamščiams, pvz., sausainių krūvai sausainių indelyje arba knygų krūvai knygų lentynoje. Į rietuves įdėti ir ištraukti galima tik viename gale, t. y. krūvos viršuje. Pavyzdžiui, jei norime suvalgyti sausainį, pirmiausia gausime viršutinį, o paskui antrąjį ir pan.
Šiame įraše bus kalbama apie „JavaScript“ dėklo diegimą. Dirbdami su „JavaScript“, nesijaudinsime dėl krūvos dydžio, nes „JavaScript“ objektų dydis gali dinamiškai augti.
Stack diegimas JavaScript
Norėdami įdiegti dėklo duomenų struktūrą, naudosime JavaScript klasę. The krūva klasė savo konstruktoriuje turės masyvą, kuris bus naudojamas elementams saugoti krūvoje. Klasė taip pat apibrėžs skirtingus metodus, kurie bus naudojami manipuliuoti kamino viduje saugomais duomenimis. Pagrindiniai masyvo metodai yra Įdėti() ir ekstraktas () metodai, naudojami elementams pridėti ir pašalinti iš krūvos viršaus.
The krūva klasė taip pat apibrėžia kitus metodus, pvz žvilgtelėti () , Yra tuščias() , aišku () , spausdinti () ir dydis () taip pat:
klasės krūva {
konstruktorius ( ) {
tai.elementai = [ ] ;
}
// Padeda elementą ant krūvos viršaus
Įdėti ( elementas ) {
tai.elementai.stumti ( elementas ) ;
}
// Pašalina elementą iš krūvos viršaus
ekstraktas ( ) {
tai.elementai.pop ( ) ;
}
// Grąžina aukščiausią krūvos elementą
žvilgtelėti ( ) {
grąžinti tai.elementai [ this.elements.length – 1 ] ;
}
// Patikros jeigu krūva tuščia
Yra tuščias ( ) {
grąžinti tai.elementai.ilgis == 0 ;
}
// Spausdina visą krūvą
spausdinti ( ) {
dėl ( leisti aš = 0 ; i < tai.elementai.ilgis; i++ ) {
console.log ( tai.elementai [ i ] ) ;
}
}
// Grąžina dydis iš kamino
dydis ( ) {
grąžinti tai.elementai.ilgis;
}
// išvalo krūvą
aišku ( ) {
tai.elementai = [ ] ;
}
}
Elementų stūmimas ir iššokimas iš kamino
Paprasčiausias krūvos veiksmas yra elementų įdėjimas ir ištraukimas iš krūvos viršaus. Stack klasė suteikia du metodus šioms operacijoms:
Pirmoje minėto kodo eilutėje deklaruojamas naujas krūvas pavadinimu s . Tada Įdėti() metodas naudojamas keturiems elementams įterpti į krūvą, iš kurių du pašalinami ekstraktas () metodas.
Kaip paimti viršutinį elementą iš kamino
The krūva klasė apibrėžia žvilgtelėti () būdas gauti viršutinį elementą iš kamino:
Kaip patikrinti, ar krūva tuščia?
Klasė taip pat apibrėžia metodą, kurį galima naudoti norint patikrinti, ar krūva tuščia:
Kaip atspausdinti visą krūvą?
The spausdinti () metodas gali būti iškviestas norint spausdinti visą krūvą
Kaip patikrinti kamino dydį?
The dydis () metodas naudoja .ilgis savybė, norint gauti krūvos dydį:
Kaip išvalyti visą krūvą?
Tiesiog iškvieskite aišku () būdas pašalinti kiekvieną kamino elementą:
Išvada
Stacks yra naudingos duomenų struktūros su daugeliu realaus pasaulio programų, tokių kaip naršyklės istorija, anuliavimo mygtukas teksto rengyklėse ir skambučių žurnalai. Visos šios programos veikia pagal LIFO principą, pvz., mygtukas „Atgal“ naršyklėje grąžina paskutinį aplankytą puslapį, o pirmasis skambučių žurnalo įrašas visada yra paskutinis skambutis.
„JavaScript“ dėklo įdiegimas yra labai paprastas, nes jame yra integruota stumti ir pop masyvų metodai. Šiame straipsnyje parodytas „JavaScript“ dėklo diegimo procesas.