Показаны сообщения с ярлыком Стеки. Показать все сообщения
Показаны сообщения с ярлыком Стеки. Показать все сообщения

22 октября 2012 г.

Очереди, Стеки, коротко


Маленький пост о работе с очередями
и стеками в Python

Методы, определенные для списков, позволяют использовать список в качестве стека,
где последний добавленный элемент извлекается первым (LIFO, “last-in, first-out”). Для
добавления элемента в стек, используйте метод append(), для извлечения элемента с
вершины стека — метод pop() без явного указания индекса:
>>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack.append(7)
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop()
7
>>> stack
[3, 4, 5, 6]
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack
[3, 4]
-----------------------------------------------------------------


Еще одно применение списков — очереди, где элементы извлекаются в том же порядке,
в котором они добавлялись (FIFO, “first-in, first-out”). Для добавления элемента в стек, используйте метод append(), для извлечения “очередного” элемента — метод pop()с индексом 0:
>>> queue = ["Eric", "John", "Michael"]
>>> queue.append("Terry") # Terry добавлен в очередь
>>> queue.append("Graham") # Graham добавлен в очередь
>>> queue.pop(0)
’Eric’
>>> queue.pop(0)
’John’
>>> queue
[’Michael’, ’Terry’, ’Graham’]