Task2 ---- 队列
源码
from Task1.OwnLinklist import LinkList
class QueueByArray:
def __init__(self, size=None):
if isinstance(size, int) and size:
self.size = size if size else 10
self.queue = [None] * self.size
else:
raise TypeError("Input size must be integer")
def insert(self, value):
if len(self.queue) >= 10:
raise IOError("Queue is full")
self.queue.append(value)
def pop(self):
try:
self.queue.pop(0)
except IndexError:
raise IndexError("Queue is empty")
class QueueByLinklist:
def __init__(self, size=None):
if isinstance(size, int) and size:
self.size = size if size else 10
self.queue = LinkList([None for i in range(self.size)])
else:
raise TypeError("Input size must be integer")
def insert(self, value):
if self.queue.length() >= self.size:
raise IOError("Queue is full")
if not self.queue.header.next:
self.queue.append(value)
def pop(self):
length = self.queue.length()
if length > 1:
self.queue.delete(0)
else:
raise IndexError("Queue is empty")
class LoopQueueByArray:
def __init__(self):
self.queue = list()
if __name__ == '__main__':
queue = LoopQueueByArray()