data structure

队列

1
一端添加,一端取值, 先进先出,类似于购买商品排队

代码实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Queue(object):
	定义队列
	def __init__(self):
		self.__list = []
	入队
	def enqueue(self,item):
		self.__list.append(item)
	出队
	def dequeue(self):
		return self.__list.pop(0)
	是否为空
	def is_empty(self):
		return not self.__list
	大小
	def size(self):
		return len(self.__list)

if __name__ == '__main__':
	s=Queue()
	s.enqueue(1)
	s.enqueue(2)
	s.enqueue(3)
	s.enqueue(4)
	s.enqueue(5)
	print(s.dequeue())
	print(s.dequeue())
	print(s.dequeue())
	print(s.dequeue())
	print(s.dequeue())

双端队列实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Deque(object):
	定义队列

	def __init__(self):
		self.__list = []
	头添加
	def add_front(self, item):
		self.__list.insert(0,item)
	尾添加
	def add_rear(self, item):
		self.__list.append(item)
	头删除
	def pop_front(self):
		return self.__list.pop(0)
	尾删除
	def pop_rear(self):
		return self.__list.pop()

	def is_empty(self):
		return not self.__list

	def size(self):
		return len(self.__list)