Въвеждаща статия в структурата на данните. Концепция на стека и примери, приложени към езика Javascript.

Въведение

Структурите на данни са средство за ефективно боравене с големи количества данни. Познаването на тяхната структура и състав ни дава по-ефективни инструменти за проектиране на нашия продукт във връзка с определени проблеми. По този повод ще направим въвеждането на стека, като прегледаме неговите особености и употреба.

Концепция за стека

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

Реализация на стека в Javascript

За да внедрим стек в Javascript, ще разчитаме на хранилището https://github.com/trekhleb/javascript-algorithms/blob/master/src/data-structures/stack/Stack.js

Хранилището съдържа отлична реализация с помощта на LinkedList, но ние ще опростим някои методи и структури, за да можем да разберем работата му. Ние ще подкрепим всички в обектно-ориентираното програмиране.

Клас стек

клас, който представлява стек, този клас ще има свойството items, което представлява набор от елементи за съхраняване (в този случай ще използваме масив от елементи, но той може да бъде от всякакъв друг тип, например обекти или набори. Най- важното е да капсулирате поведението). При стартиране itemsproperty няма да има елементи.

class Stack {
  constructor() {
    this.items = [];
  }
}

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

Метод за вмъкване на елементи

За да вмъкнем елементи в нашия стек, ще създадем общия метод, наречен push. Този метод натрупва елементи.

push()

push(element) {
  this.items.push(element);
}

Метод за премахване на елемента

За да премахнем елементи от нашия стек, ще създадем общия метод, наречен pop. Този метод деподрежда елементи.

pop()

pop() {
  return this.items.pop();
}

Метод за показване на елемент

Друга от най-често срещаните операции на стековете е визуализирането на елемента, който предстои да напусне. Това е елементът, който е отгоре. Този метод се нарича peek.

peek()

peek() {
  return this.items[this.items.length - 1];
}

Пълен код

Край

В тази статия разглеждаме стековете накратко, но тези методи трябва да са достатъчни, за да покрият основните случаи на употреба. Разбира се, има много начини да разширим и усъвършенстваме нашия пример. Препоръчвам да продължите да проучвате реализациите и да ги адаптирате към вашите нужди.

Благодаря, че стигнахте толкова далеч, ако намирате това за полезно, не забравяйте да ръкопляскате 👏. Абонирайте се, за да получавате повече съдържание 🔔.

Ако имате нужда от допълнителна помощ, моля свържете се с мен 🤠.

Благодаря ви много за четенето, оценявам отделеното време.