Опиши основные операции для структур данных: стек и очередь.
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Стек
Стек (Stack) — это структура данных, работающая по принципу LIFO (Last-In, First-Out), где последним добавленным элементом будет первым извлеченным.
Основные операции:
-
Push: Добавление элемента на вершину стека.
# Пример операции push в Python с использованием списка stack = [] stack.append(10) # Добавляем элемент stack.append(20) # Теперь стек: [10, 20] (20 на вершине) -
Pop: Удаление и возвращение элемента с вершины стека. Если стек пуст, операция может вызвать ошибку.
# Пример операции pop element = stack.pop() # Извлекаем элемент (20) # Теперь стек: [10] # element == 20 -
Peek (или Top): Возвращение элемента с вершины стека без его удаления.
# Пример операции peek if stack: # Проверяем, не пуст ли стек top_element = stack[-1] # top_element == 10 # Стек не меняется: [10] -
IsEmpty: Проверка, пуст ли стек.
# Пример операции is_empty is_empty = len(stack) == 0 # is_empty == False в данном случае empty_stack = [] is_empty_empty = len(empty_stack) == 0 # is_empty_empty == True
Очередь
Очередь (Queue) — это структура данных, работающая по принципу FIFO (First-In, First-Out), где первым добавленным элементом будет первым извлеченным.
Основные операции:
-
Enqueue: Добавление элемента в конец очереди.
# Пример операции enqueue в Python с использованием collections.deque from collections import deque queue = deque() queue.append(10) # Добавляем элемент в конец queue.append(20) # Теперь очередь: deque([10, 20]) (10 в начале, 20 в конце) -
Dequeue: Удаление и возвращение элемента из начала очереди. Если очередь пуста, операция может вызвать ошибку.
# Пример операции dequeue element = queue.popleft() # Извлекаем элемент из начала (10) # Теперь очередь: deque([20]) # element == 10 -
Front (или Peek): Возвращение элемента из начала очереди без его удаления.
# Пример операции front if queue: # Проверяем, не пуста ли очередь front_element = queue[0] # front_element == 20 # Очередь не меняется: deque([20]) -
IsEmpty: Проверка, пуста ли очередь.
# Пример операции is_empty is_empty = len(queue) == 0 # is_empty == False в данном случае empty_queue = deque() is_empty_empty = len(empty_queue) == 0 # is_empty_empty == True