题目
设计循环队列 题目链接 官方题解
关键词
队列,数组
代码记录
class MyCircularQueue:
def __init__(self
, k
: int):
"""
Initialize your data structure here. Set the size of the queue to be k.
"""
self
.queue
=[None for i
in range(k
)]
self
.head
=0
self
.tail
=0
self
.size
=k
def enQueue(self
, value
: int) -> bool:
"""
Insert an element into the circular queue. Return true if the operation is successful.
"""
if self
.isFull
():
return False
if self
.head
==self
.tail
and self
.queue
[self
.head
]==None:
self
.queue
[self
.head
]=value
else:
to_insert
=(self
.head
-1)%self
.size
self
.queue
[to_insert
]=value
self
.head
=to_insert
return True
def deQueue(self
) -> bool:
"""
Delete an element from the circular queue. Return true if the operation is successful.
"""
if self
.isEmpty
():
return False
self
.queue
[self
.tail
]=None
if not self
.head
==self
.tail
:
self
.tail
=(self
.tail
-1)%self
.size
return True
def Front(self
) -> int:
"""
Get the front item from the queue.
"""
return self
.queue
[self
.tail
] if not self
.isEmpty
() else -1
def Rear(self
) -> int:
"""
Get the last item from the queue.
"""
return self
.queue
[self
.head
] if not self
.isEmpty
() else -1
def isEmpty(self
) -> bool:
"""
Checks whether the circular queue is empty or not.
"""
return True if self
.head
==self
.tail
and self
.queue
[self
.head
]==None else False
def isFull(self
) -> bool:
"""
Checks whether the circular queue is full or not.
"""
return True if (self
.head
-1)%self
.size
==self
.tail
else False
转载请注明原文地址: https://lol.8miu.com/read-22460.html