zoukankan      html  css  js  c++  java
  • 循环队列的实现

    class MyCircularQueue:
    
        def __init__(self, k: int):
            """
            Initialize your data structure here. Set the size of the queue to be k.
            """
            self.k=k
            self.front=-1
            self.rear=-1
            self.queue=[None]*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.isEmpty():
                self.front = 0
            self.rear = (self.rear + 1) % self.k
            self.queue[self.rear] = value
            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
            if self.front == self.rear:      # 出栈不需要真的删除元素,只需要改变头尾指针
                self.front = -1              # 首尾指针指到相同元素,且不为-1,此时必然仅有一个元素
                self.rear = -1
                return True
            self.front = (self.front + 1) % self.k
            return True
            
    
        def Front(self) -> int:
            """
            Get the front item from the queue.
            """
            return -1 if self.isEmpty() else self.queue[self.front]
    
        def Rear(self) -> int:
            """
            Get the last item from the queue.
            """
            return -1 if self.isEmpty() else self.queue[self.rear]
            
    
        def isEmpty(self) -> bool:
            """
            Checks whether the circular queue is empty or not.
            """
            return self.front == -1 and self.rear==-1
            
    
        def isFull(self) -> bool:
            """
            Checks whether the circular queue is full or not.
            """
            return (self.rear+1)%self.k==self.front
    
        # 输出队列中的元素
        def ShowQueue(self):
            for i in range(self.k):
                print(self.queue[i],end=' ')
            print(' ')
  • 相关阅读:
    2020.7.11
    2020.7.13
    2020.7.9
    2020.7.10
    Java入门——day13
    Java入门——day12
    Java入门——day11
    虚拟交换机
    KVM虚拟化 ProxmoxVE
    【路径】python环境错误调试【执行路径】【操作系统,版本】
  • 原文地址:https://www.cnblogs.com/jzxs/p/11374659.html
Copyright © 2011-2022 走看看