队列

队列(queue)的定义:

队列是一种先进先出(FIFO)的线性数据结构

特点:

只能从队尾添加元素,只能从队尾取出元素。应用:播放器的播放列表,异步的数据传输结构(文件IO,管道通讯,套接字等)。

队列相关问题:

用两个栈实现队列:

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

思路:一个栈用来处理入栈。一个栈用来处理出栈。pop的时候,先pop到一个栈,再由这个栈pop出来,这样就是先进先出的顺序。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
self.stackA = []
self.stackB = []

def push(self, node):
# write code here
self.stackA.append(node)
def pop(self):
if self.stackB:
return self.stackB.pop()
elif not self.stackA:
return None
else:
while self.stackA:
self.stackB.append(self.stackA.pop())
return self.stackB.pop()
# return xx