4.2 KiB
id, title, challengeType, forumTopicId, dashedName
| id | title | challengeType | forumTopicId | dashedName |
|---|---|---|---|---|
| 587d8250367417b2b2512c60 | Створіть клас Queue | 1 | 301631 | create-a-queue-class |
--description--
Подібно до стеків, черги — це колекції елементів. Але на відміну від стеків, черги керуються принципом першим прийшло — першим пішло. Елементи, додані до черги, переміщаються в кінець, а вилучити можна лише перший елемент.
Для представлення черги можна було б використати масив, але як і у випадку зі стеками, ми хочемо обмежити контроль над чергами.
Клас Queue має два основні методи: enqueue та dequeue. Метод enqueue додає елемент у кінець черги, а метод dequeue видаляє та повертає перший елемент. Іншими корисними методами є front, size та isEmpty.
--instructions--
Напишіть метод enqueue, щоб додати елемент в кінець черги; метод dequeue, щоб видалити та повернути перший елемент; метод front, щоб побачити перший елемент; метод size, щоб дізнатися довжину черги; метод isEmpty, щоб перевірити, чи черга порожня.
--hints--
Клас Queue повинен мати метод enqueue.
assert(
(function () {
var test = new Queue();
return typeof test.enqueue === 'function';
})()
);
Клас Queue повинен мати метод dequeue.
assert(
(function () {
var test = new Queue();
return typeof test.dequeue === 'function';
})()
);
Клас Queue повинен мати метод front.
assert(
(function () {
var test = new Queue();
return typeof test.front === 'function';
})()
);
Клас Queue повинен мати метод size.
assert(
(function () {
var test = new Queue();
return typeof test.size === 'function';
})()
);
Клас Queue повинен мати метод isEmpty.
assert(
(function () {
var test = new Queue();
return typeof test.isEmpty === 'function';
})()
);
Метод dequeue має видалити та повернути перший елемент черги.
assert(
(function () {
var test = new Queue();
test.enqueue('Smith');
test.enqueue('John');
return test.dequeue() === 'Smith';
})()
);
Метод front має повернути значення першого елемента черги.
assert(
(function () {
var test = new Queue();
test.enqueue('Smith');
test.enqueue('John');
return test.front() === 'Smith';
})()
);
Метод size має повернути довжину черги.
assert(
(function () {
var test = new Queue();
test.enqueue('Smith');
return test.size() === 1;
})()
);
Метод isEmpty має повернути false, якщо черга порожня.
assert(
(function () {
var test = new Queue();
test.enqueue('Smith');
return !test.isEmpty();
})()
);
--seed--
--seed-contents--
function Queue() {
var collection = [];
this.print = function() {
console.log(collection);
};
// Only change code below this line
// Only change code above this line
}
--solutions--
function Queue () {
var collection = [];
this.print = function() {
console.log(collection);
};
// Only change code below this line
this.enqueue = function(item) {
collection.push(item);
}
this.dequeue = function() {
return collection.shift();
}
this.front = function() {
return collection[0];
}
this.size = function(){
return collection.length;
}
this.isEmpty = function() {
return collection.length === 0 ? true : false;
}
// Only change code above this line
}