Стекови су линеарне структуре података које прате принцип ЛИФО. ЛИФО је скраћеница за последњи у први, што значи да је последња ставка прва која ће бити уклоњена. Ова структура података је названа стог као аналогија наслагама из стварног света, на пример, хрпа колачића у тегли за колачиће или хрпа књига на полици за књиге. У стеку уметање и вађење се може извршити само на једном крају, тј. на врху стека. На пример, ако желимо да једемо колачић, прво ћемо добити горњи, а затим други и тако даље.
Овај пост ће бити све о имплементацији стека у ЈаваСцрипт-у. Пошто радимо са ЈаваСцрипт-ом, нећемо бити забринути за величину стека јер величина ЈаваСцрипт објеката може динамички да расте.
Имплементација стека у ЈаваСцрипт-у
Користићемо ЈаваСцрипт класу за имплементацију структуре података стека. Тхе гомила класа ће садржати низ у свом конструктору који ће се користити за складиштење елемената у стеку. Класа ће такође дефинисати различите методе које ће се користити за манипулисање подацима ускладиштеним унутар стека. Најосновније методе низа су инсерт() и екстракт() методе које се користе за додавање и уклањање елемената са врха стека.
Тхе гомила класа дефинише и друге методе као нпр завирити () , Празно() , јасно() , принт() и величина() такође:
класа стацк {
конструктор ( ) {
тхис.елементс = [ ] ;
}
// Ставља ставку на врх гомиле
уметнути ( елемент ) {
тхис.елементс.пусх ( елемент ) ;
}
// Уклања ставку са врха снопа
екстракт ( ) {
тхис.елементс.поп ( ) ;
}
// Враћа највиши елемент стека
завирити ( ) {
повратак ово.елементи [ тхис.елементс.ленгтх - 1 ] ;
}
// Чекови ако стек је празан
Празно ( ) {
повратак тхис.елементс.ленгтх == 0 ;
}
// Штампа цео сноп
принт ( ) {
за ( дозволити и = 0 ; и < тхис.елементс.ленгтх; и++ ) {
цонсоле.лог ( ово.елементи [ и ] ) ;
}
}
// Враћа величина од стека
величина ( ) {
повратак тхис.елементс.ленгтх;
}
// чисти стек
јасно ( ) {
тхис.елементс = [ ] ;
}
}
Гурање и искакање елемената из стека
Најосновнија операција стека је уметање и издвајање елемената са врха стека. Класа стек обезбеђује две методе за ове операције:
Први ред горе поменутог кода проглашава нови стек под називом с . Затим инсерт() метода се користи за уметање четири елемента у стек, од којих се два затим уклањају помоћу екстракт() методом.
Како добити горњи елемент из стека
Тхе гомила класа дефинише завирити () метод за добијање горњег елемента из стека:
Како проверити да ли је стек празан?
Класа такође дефинише метод који се може користити за проверу да ли је стек празан:
Како одштампати цео сноп?
Тхе принт() метода се може позвати за штампање целог стека
Како проверити величину стека?
Тхе величина() метода користи .дужина својство да добијете величину стека:
Како очистити цео стек?
Једноставно позовите јасно() метод за уклањање сваког елемента стека:
Закључак
Стекови су корисне структуре података са многим апликацијама из стварног света, као што су историја прегледача, дугме за поништавање у уређивачима текста и евиденције позива. Све ове апликације прате ЛИФО принцип, на пример, дугме за назад у претраживачу враћа на последњу посећену страницу и први унос у евиденцији позива је увек последњи позив.
Имплементација стека у ЈаваСцрипт-у је заиста лака јер има уграђено гурати и поп методе за низове. Овај чланак показује процес имплементације стека у ЈаваСцрипт-у.