Структуры данных
October 27, 2023
Очереди (stack, queue)
Стэк (stack)
Стек хранит данные в последовательном порядке и удаляет последние (новые) элементы.
Алгоритм
- push: добавить новый элемент
- pop: удалить верхний элемент, вернуть его
- peek: вернуть верхний элемент
- length: вернуть количество элементов в стеке
Код
function Stack() { this.count = 0 this.storage = {} this.push = function(value) { this.storage[this.count] = value this.count++ } this.pop = function() { if (this.count === 0) return undefined this.count-- let result = this.storage[this.count] delete this.storage[this.count] return result } this.peek = function() { return this.storage[this.count - 1] } this.size = function() { return this.count } }
Очередь (queue)
Очередь напоминает стек, она так же хранит данные в последовательном порядке, но удаляет самые первые элементы (старые)
Алгоритм
- enqueue: войти в очередь, добавить элемент в конец
- dequeue: покинуть очередь, удалить первый элемент и вернуть его
- front: получить первый элемент
- isEmpty: проверить, пуста ли очередь
- size: получить количество элементов в очереди
Код
function Queue() { let collection = [] this.print = function() { console.log(collection) } this.enqueue = function(element) { collection.push(element) } this.dequeue = function() { return collection.shift() } this.front = function() { return collection[0] } this.isEmpty = function() { return collection.length === 0 } this.size = function() { return collection.length } }
Задачи
Видео
October 27, 2023, 08:45
0 views
0 reactions
0 replies
0 reposts