'use strict'; // โญ toggle sloppy/strict mode
const { log } = console;
// โญ import
const { WaitingList } = require('./DataStructure/WaitingList.js');
// const q = new WaitingList('queue', 1, 2, 3); // โญ mode = 'queue'
const q = new WaitingList('stack', 1, 2, 3); // โญ mode = 'stack'
// โ
execute commands
;[
// commands value Queue H T L | value Stack
// --------------------------------------------------------------------
`q`, // <- 1,2,3] 0 3 3 | [1,2,3 ->
`q.dequeue()`, // 1 <- 2,3] 1 3 2 | 3 [1,2
`q.first`, // 2 | 2
`q.dequeue()`, // 2 <- 3] 2 3 1 | 2 [1
`q.enqueue(4)`, // <- 3,4] 2 4 2 | [1,4
`q.dequeue()`, // 3 <- 4] 3 4 1 | 4 [1
`q.dequeue()`, // 4 <- ] 4 4 0 | 1 [
`q.dequeue()`, // null <- ] 4 4 0 | null [
`q.isEmpty`, // true | true
].forEach(cmd => {
log('-'.repeat(40));
log(`${cmd}`);
const value = eval(cmd); // execute command
if (!(value instanceof WaitingList)) { log(value); }
log(q.toString(), q.debugInfo);
});