41 lines
1.0 KiB
JavaScript
41 lines
1.0 KiB
JavaScript
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const Deque_1 = __importDefault(require("../SequentialContainer/Deque"));
|
|
const index_1 = require("../ContainerBase/index");
|
|
class Queue extends index_1.Base {
|
|
constructor(container = []) {
|
|
super();
|
|
this.queue = new Deque_1.default(container);
|
|
this.length = this.queue.size();
|
|
}
|
|
clear() {
|
|
this.queue.clear();
|
|
this.length = 0;
|
|
}
|
|
/**
|
|
* @description Inserts element to queue's end.
|
|
*/
|
|
push(element) {
|
|
this.queue.pushBack(element);
|
|
this.length += 1;
|
|
}
|
|
/**
|
|
* @description Removes the first element.
|
|
*/
|
|
pop() {
|
|
this.queue.popFront();
|
|
if (this.length)
|
|
this.length -= 1;
|
|
}
|
|
/**
|
|
* @description Access the first element.
|
|
*/
|
|
front() {
|
|
return this.queue.front();
|
|
}
|
|
}
|
|
exports.default = Queue;
|