В Go (Golang) очередь — это структура данных, которая соответствует принципу «первым пришел — первым обслужен» (FIFO). Вот некоторые распространенные методы, используемые в реализации очереди в Go, а также примеры кода:
-
Поставить в очередь: добавляет элемент в конец очереди.
func (q *Queue) Enqueue(item interface{}) { q.items = append(q.items, item) } -
Извлечь из очереди: удаляет и возвращает элемент в начале очереди.
func (q *Queue) Dequeue() interface{} { if q.IsEmpty() { return nil } item := q.items[0] q.items = q.items[1:] return item } -
Просмотр: возвращает элемент в начале очереди, не удаляя его.
func (q *Queue) Peek() interface{} { if q.IsEmpty() { return nil } return q.items[0] } -
IsEmpty: проверяет, пуста ли очередь.
func (q *Queue) IsEmpty() bool { return len(q.items) == 0 } -
Размер: возвращает количество элементов в очереди.
func (q *Queue) Size() int { return len(q.items) } -
Очистить: удаляет все элементы из очереди.
func (q *Queue) Clear() { q.items = nil } -
Содержит: проверяет, содержит ли очередь определенный элемент.
func (q *Queue) Contains(item interface{}) bool { for _, v := range q.items { if v == item { return true } } return false }
Эти методы предоставляют базовую функциональность для работы с очередями в Go. Однако стоит отметить, что очереди можно реализовать различными способами, например, с помощью срезов или связанных списков. Представленные примеры кода предполагают использование реализации на основе срезов.