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 уже умеет всё нужное; классы задают понятный интерфейс.