mirror of
https://github.com/krahets/hello-algo.git
synced 2026-06-29 00:54:26 +00:00
Migrate to Zensical (#1869)
* Fix Russian Ruby code extraction. * Add zensical configs.
This commit is contained in:
@@ -4,29 +4,29 @@ Created Time: 2024-04-05
|
||||
Author: Xuan Khoa Tu Nguyen (ngxktuzkai2000@gmail.com)
|
||||
=end
|
||||
|
||||
# ## Очередь на основе кольцевого массива ###
|
||||
### Очередь на основе кольцевого массива ###
|
||||
class ArrayQueue
|
||||
# ## Получение длины очереди ###
|
||||
### Получение длины очереди ###
|
||||
attr_reader :size
|
||||
|
||||
# ## Конструктор ###
|
||||
### Конструктор ###
|
||||
def initialize(size)
|
||||
@nums = Array.new(size, 0) # Массив для хранения элементов очереди
|
||||
@front = 0 # Указатель head, указывающий на первый элемент очереди
|
||||
@size = 0 # Длина очереди
|
||||
end
|
||||
|
||||
# ## Получить вместимость очереди ###
|
||||
### Получить вместимость очереди ###
|
||||
def capacity
|
||||
@nums.length
|
||||
end
|
||||
|
||||
# ## Проверка, пуста ли очередь ###
|
||||
### Проверка, пуста ли очередь ###
|
||||
def is_empty?
|
||||
size.zero?
|
||||
end
|
||||
|
||||
# ## Добавление в очередь ###
|
||||
### Добавление в очередь ###
|
||||
def push(num)
|
||||
raise IndexError, 'очередь заполнена' if size == capacity
|
||||
|
||||
@@ -38,7 +38,7 @@ class ArrayQueue
|
||||
@size += 1
|
||||
end
|
||||
|
||||
# ## Извлечение из очереди ###
|
||||
### Извлечение из очереди ###
|
||||
def pop
|
||||
num = peek
|
||||
# Указатель head сдвигается на одну позицию назад; если он выходит за конец, то возвращается в начало массива
|
||||
@@ -47,14 +47,14 @@ class ArrayQueue
|
||||
num
|
||||
end
|
||||
|
||||
# ## Доступ к элементу в начале очереди ###
|
||||
### Доступ к элементу в начале очереди ###
|
||||
def peek
|
||||
raise IndexError, 'очередь пуста' if is_empty?
|
||||
|
||||
@nums[@front]
|
||||
end
|
||||
|
||||
# ## Вернуть список для вывода ###
|
||||
### Вернуть список для вывода ###
|
||||
def to_array
|
||||
res = Array.new(size, 0)
|
||||
j = @front
|
||||
|
||||
Reference in New Issue
Block a user