Skip to content

Latest commit

 

History

History
61 lines (44 loc) · 2.99 KB

File metadata and controls

61 lines (44 loc) · 2.99 KB

Стек (Stack)

Структура данных, представляющая из себя список список элементов, организованных по принципу 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 ...

Очередь (Queue)

Структура данных, представляющая из себя список список элементов, организованных по принципу 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. Если все элементы из одного стека переложить в другой стек, то "наверху" нового стека теперь будут самые старые элементы.