python数据结构之栈、队列的实现
这个在官网中list支持,有实现
补充一下栈,队列的特性:
1. 栈(stacks)是一种只能通过访问其一端来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIFO)的特征
2. 队列(queue)是一种具有先进先出特征的线性数据结构,元素的增加只能在一端进行,元素的删除只能在另一端进行。能够增加元素的队列一端称为队尾,可以删除元素的队列一端则称为队首。
地址在 http://docs.python.org/2/tutorial/datastructures.html#more-on-lists ,下面的官方的代码
栈
>>> stack = [1,2,3,4]
>>> stack.append(5)
>>> stack.append(6)
>>> stack
[1, 2, 3, 4, 5, 6]
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack
[1, 2, 3, 4]
>>> stack.pop()
4
>>> stack
[1, 2, 3]
队列
>>> from collections import deque
>>> queue = deque([1,2,3,4])
>>> queue.append(5)
>>> queue.append(6)
>>> queue
deque([1, 2, 3, 4, 5, 6])
# 先进后出
>>> queue.popleft()
1
>>> queue.popleft()
2
>>> queue
deque([3, 4, 5, 6])
# 先进先出
>>> queue.pop()
6
>>> queue
deque([3, 4, 5])