AFON // радиотехник affonya@mail.ru
← Все проекты JavaScript

Стек и очередь

Реализация стека (LIFO) и очереди (FIFO) на классах.

JS.45 · Данные

Задача

Показать разный порядок выдачи элементов из стека и очереди.

Алгоритм

Стек кладёт и снимает с конца (push/pop). Очередь кладёт в конец, снимает с начала (push/shift).

Исходный код

⇩ Скачать 45-stek-i-ochered.js

// Стек и очередь
class Stack { constructor(){this.a=[];} push(x){this.a.push(x);} pop(){return this.a.pop();} }
class Queue { constructor(){this.a=[];} enq(x){this.a.push(x);} deq(){return this.a.shift();} }

const s = new Stack(), q = new Queue();
for (let i = 1; i <= 5; i++) { s.push(i); q.enq(i); }

console.log('стек LIFO:   ', [s.pop(), s.pop(), s.pop()]);
console.log('очередь FIFO:', [q.deq(), q.deq(), q.deq()]);

Пояснения

Массив в JavaScript уже умеет всё нужное; классы задают понятный интерфейс.