同步操作将从 编程语言算法集/Python 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# Implementation of Circular Queue (using Python lists)class CircularQueue:"""Circular FIFO queue with a fixed capacity"""def __init__(self, n: int):self.n = nself.array = [None] * self.nself.front = 0 # index of the first elementself.rear = 0self.size = 0def __len__(self) -> int:""">>> cq = CircularQueue(5)>>> len(cq)0>>> cq.enqueue("A") # doctest: +ELLIPSIS<data_structures.queue.circular_queue.CircularQueue object at ...>>> len(cq)1"""return self.sizedef is_empty(self) -> bool:""">>> cq = CircularQueue(5)>>> cq.is_empty()True>>> cq.enqueue("A").is_empty()False"""return self.size == 0def first(self):""">>> cq = CircularQueue(5)>>> cq.first()False>>> cq.enqueue("A").first()'A'"""return False if self.is_empty() else self.array[self.front]def enqueue(self, data):"""This function insert an element in the queue using self.rear value as an index>>> cq = CircularQueue(5)>>> cq.enqueue("A") # doctest: +ELLIPSIS<data_structures.queue.circular_queue.CircularQueue object at ...>>> (cq.size, cq.first())(1, 'A')>>> cq.enqueue("B") # doctest: +ELLIPSIS<data_structures.queue.circular_queue.CircularQueue object at ...>>> (cq.size, cq.first())(2, 'A')"""if self.size >= self.n:raise Exception("QUEUE IS FULL")self.array[self.rear] = dataself.rear = (self.rear + 1) % self.nself.size += 1return selfdef dequeue(self):"""This function removes an element from the queue using on self.front value as anindex>>> cq = CircularQueue(5)>>> cq.dequeue()Traceback (most recent call last):...Exception: UNDERFLOW>>> cq.enqueue("A").enqueue("B").dequeue()'A'>>> (cq.size, cq.first())(1, 'B')>>> cq.dequeue()'B'>>> cq.dequeue()Traceback (most recent call last):...Exception: UNDERFLOW"""if self.size == 0:raise Exception("UNDERFLOW")temp = self.array[self.front]self.array[self.front] = Noneself.front = (self.front + 1) % self.nself.size -= 1return temp
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。