队列与栈的结构类似,但不同的是队列的出队操作是在队首元素进行的删除操作。基本原则是先进先出。
用列表,列表的功能非常强大,既能模拟堆栈又能模拟队列,出队的时候
取出队首挪动队列元素整体队长-1入队的时候,直接在尾部加入:
list.append(element)如果对数据结构感兴趣,可以查看这篇博文: 执念斩长河专栏数据结构–目录
实验效果
实验代码:
# -*- 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()