队列简介
队列与栈的结构类似,但不同的是队列的出队操作是在队首元素进行的删除操作。基本原则是先进先出。
队列如何用python模拟
用列表,列表的功能非常强大,既能模拟堆栈又能模拟队列,出队的时候
- 取出队首
- 挪动队列元素
- 整体队长-1
入队的时候,直接在尾部加入:
list.append(element)
如果对数据结构感兴趣,可以查看这篇博文:
执念斩长河专栏数据结构–目录
例子:用python模拟队列的入出队操作
实验效果
实验代码:
# -*- coding:utf-8 -*-
class PyQueue:
def __init__(self, size=20):
self.queue = []
self.size = size
self.end = -1
def setSize(self, size):
self.size = size
def In(self,element):
if self.end < self.size - 1:
self.queue.append(element)
self.end = self.end + 1
else:
raise QueueException('PyQueueFull')
def Out(self):
if self.end != -1:
element = self.queue[0] # 取出出队的元素
self.queue = self.queue[1:] # 挪位置
self.end = self.end - 1 # 队长-1
return element
else:
raise QueueException('PyQueueEmpty')
def End(self):
return self.end
def empty(self):
self.queue = []
self.end = -1
class QueueException(Exception):
def __init__(self,data):
self.data = data
def __str__(self):
return self.data
if __name__ == '__main__':
print('创建队列.....')
queue = PyQueue()
print('入队列....')
for i in range(20):
queue.In(i);
print('出队列...')
print(queue.Out())
print('打印队尾元素....')
print(queue.End())
print('清空队列....')
queue.empty()