Как да изградите стек

Стекът работи със структурата LIFO (последно влязло, първо излязло), което означава, че последното нещо, избутано в масива, е първото нещо, което трябва да бъде премахнато. Масивите могат да се манипулират по всякакъв начин с нормални Javascript методи. За да изградим стек, трябва да изградим Javascript клас, за да ограничим нормалните методи на масив, които могат да бъдат оперирани с него.

За да изградим това, започваме с използването на структурата на класа ES6 за изграждане на клас. Инициализираме класа с конструктор, който има празен масив, наречен данни. Тъй като елементите могат да се добавят или премахват само от стек, трябва да изградим методите, за да работят по начина, по който искаме. Методът push добавя елемент в края на списъка с метода array.push(). За да може масивът да премахне последния добавен елемент, трябва да използваме метода array.pop(), за да премахнем последния добавен елемент към нашия масив.

Как да изградите опашка

Много подобно на стека, ние ще изградим клас, за да ограничим количеството методи, които могат да се оперират с масив. Най-голямата разлика между двете е, че елементът, премахнат от опашката, трябва да бъде първият, който е добавен, известен също като FIFO структура (First In First Out).

За изграждане на опашка ще я инициализираме с празен масив, наречен данни, и ще му дадем два метода. Първият метод ще използва метода array.push() за добавяне на елемент към масива. Вторият метод ще използва метода array.shift(), за да премахне от списъка първия елемент, който е добавен към масива.

Лесно, нали?

Това бяха прости примери както за стек, така и за опашка. В следващия блог ще работим върху някои алгоритми, използващи стекове и опашки!