Структура данных, представляющая из себя список список элементов, организованных по принципу LIFO (last in — first out, «последним пришёл — первым вышел»).
Проще всего представлять как стопку тарелок или стопку книг.
class Stack:
def __init__(self):
...
def push(self, item): # положить элемент в стек
...
def pop(self): # удалить элемент из стека и вернуть его значение
...
return ...
def peek(self): # вернуть значение последнего элемента стека (не удаляя его)
...
return ...
def isEmpty(self): # вернуть True, если стек пуст, иначе вернуть False
...
return ...
Структура данных, представляющая из себя список список элементов, организованных по принципу FIFO (first In — first Out, «первый пришёл — первый вышел»).
Проще всего представлять как обыкновенную очередь в магазине: первм обслуживают того, кто первый подошел к кассе.
class Queue:
def __init__(self):
...
def enqueue(self, item): # положить элемент в очередь
...
def dequeue(self): # удалить элемент из очереди и вернуть его значение
...
def peek(self): # вернуть значение первого элемента очереди (не удаляя его)
...
def isEmpty(self): # вернуть True, если стек пуст, иначе вернуть False
...
На занятии мы писали эти два класса.
Написать класс MyQueue с использованием двух стеков.
То есть у вас будет класс Stack, внутри которого элементы собираются в массив, и класс MyQueue, внутри которого элементы каким-то образом организованы в двух стеках.
Подсказка. Различие между очередью и стеком: из очереди удаляется самый старый элемент, а из стека - самый новый.
Подсказка 2. Если все элементы из одного стека переложить в другой стек, то "наверху" нового стека теперь будут самые старые элементы.