队列
1.定义:队列是限制在两端进行插入操作和删除操作的线性表,允许进行存入操作的一端称为“队尾”,允许进行删除操作的一端称为“队头”。
2.特点:
- 队列只能在队头和队尾进行数据操作
- 栈模型具有先进先出或者叫做后进后出的规律
3.队列的代码实现
队列的操作有入队,出队,判断队列的空满等操作。
#顺序存储
class QueueError(self):
"""docstring for QueueError"""
pass
class SQueue:
def __init__(self):
self.__elems = []
def is_emety(self):
return self.__elems ==[]
def enqueue(self,elem):
self.__elems.append(elem)
def dequeue(self):
if not self.__elems:
raise QueueError("Query is empty")
return self.__elems.pop(0)
#链式存储
class Node:
def __init__(self,data,next = None):
self.data = data
self.next = next
class LQueue:
def __init__(self):
self.front = self.rear = Node(None)
def is_empty(self):
return self.front == self.rear
def enqueue(self,data):
self.rear.next = Node(data)
def dequeue(self):
if self.front == self.rear:
raise QueueError("Queue is empty")
self.front = self.front.next
return self.front.data