Stabler er lineære datastrukturer, som følger princippet om LIFO. LIFO står for sidst ind først ud, hvilket betyder, at det senest tilføjede element er det første, der skal fjernes. Denne datastruktur kaldes stak som en analogi til stakke i den virkelige verden, f.eks. en stak cookies i en kagedåse eller en stak bøger på en bogreol. I stakken kan indsættelse og udtrækning kun udføres i den ene ende, dvs. toppen af stakken. For eksempel, hvis vi vil spise en småkage, får vi først den øverste og derefter den anden og så videre.
Dette indlæg vil handle om implementeringen af stack i JavaScript. Da vi arbejder med JavaScript, vil vi ikke være bekymrede for størrelsen af stakken, da størrelsen af JavaScript-objekterne kan vokse dynamisk.
Implementering af Stack i JavaScript
Vi vil bruge en JavaScript-klasse til at implementere stakdatastrukturen. Det stak klasse vil indeholde et array i sin konstruktør, som vil blive brugt til at gemme elementer i stakken. Klassen vil også definere forskellige metoder, som vil blive brugt til at manipulere de data, der er gemt inde i stakken. De mest grundlæggende metoder i arrayet er indsæt() og uddrag() metoder, der bruges til at tilføje og fjerne elementer fra toppen af stakken.
Det stak klasse definerer også andre metoder som f.eks kig() , er tom() , klar() , Print() og størrelse() såvel:
klasse stak {
konstruktør ( ) {
dette.elementer = [ ] ;
}
// Placerer et emne oven på stakken
indsætte ( element ) {
dette.elementer.skub ( element ) ;
}
// Fjerner et element fra toppen af stakken
uddrag ( ) {
denne.elementer.pop ( ) ;
}
// Returnerer det øverste element i stakken
kig ( ) {
Vend tilbage dette.elementer [ this.elements.length - 1 ] ;
}
// Checks hvis stakken er tom
er tom ( ) {
Vend tilbage this.elements.length == 0 ;
}
// Udskriver hele stakken
Print ( ) {
til ( lade i = 0 ; jeg < denne.elementer.længde; i++ ) {
console.log ( dette.elementer [ jeg ] ) ;
}
}
// Returnerer størrelse af stakken
størrelse ( ) {
Vend tilbage denne.elementer.længde;
}
// rydder stakken
klar ( ) {
dette.elementer = [ ] ;
}
}
Skubbende og poppende elementer fra stakken
Den mest grundlæggende betjening af stakken er at indsætte og udtrække elementer fra toppen af stakken. Stakklassen giver to metoder til disse operationer:
Den første linje i den ovennævnte kode erklærer en ny stack navngivet s . Derefter indsæt() metode bruges til at indsætte fire elementer i stakken, hvoraf to derefter fjernes af uddrag() metode.
Sådan får du det øverste element fra stakken
Det stak klasse definerer kig() metode til at få det øverste element fra stakken:
Hvordan kontrollerer man, om stakken er tom?
Klassen definerer også en metode, som kan bruges til at kontrollere, om stakken er tom:
Hvordan udskriver man hele stakken?
Det Print() metode kan kaldes til at udskrive hele stakken
Hvordan kontrollerer man stakkens størrelse?
Det størrelse() metoden bruger .længde egenskab for at få størrelsen på stakken:
Hvordan rydder man hele stakken?
Du skal blot påberåbe klar() metode til at fjerne hvert element i stakken:
Konklusion
Stabler er nyttige datastrukturer med mange applikationer fra den virkelige verden, såsom browserhistorik, fortryd-knap i teksteditorer og opkaldslogger. Alle disse applikationer følger LIFO-princippet, f.eks. vender tilbage-knappen i browseren tilbage til den sidst besøgte side, og den første indtastning af opkaldsloggen er altid det seneste opkald.
Implementeringen af stack i JavaScript er virkelig nem, da den har det indbyggede skubbe og pop metoder til arrays. Denne artikel demonstrerer processen med implementering af stak i JavaScript.