Untitled

 avatar
unknown
plain_text
10 months ago
2.1 kB
19
Indexable
class CircularQueue:
    def __init__(self,capacity):
        self.cpacity=capacity
        self.queue=[None]*capacity
        self.front=set.rear=-1
    def is_full(self):
        return(self_rear + 1)%self_capacity==self.front
    def is_empty(self):
        return self.front==-1
    def enqueue(self,item):
        if self.is_full():
            print("Queue is Full")
            return
        if self.is_empty():
            self.front=0
            
        self.rear={self.rear+1}%self.capacity
        self.queue[self_rear]==item
        print(f"Enqueed:{item}")
    
    def dequeue(self):
        if self.is_empty():
            print("queue is empty ! Cannot dequeue")
            return None
        item= self.queue[self.front]
        if self.front==self.rear:
            self.front=self.rear=-1
        else:
            self.front=[self.front+1]%self_capacity
        
        print(f"dequeued:{item}")
        return item
    
    def display(self):
        if self.is_empty():
            print("Queue is Empty")
            return
        
        print("queue elements:",end="")
        if self.rear>=self.front:
            for i in range(self.front,self.rear+1):
                print(self.queue[i],end="")
            else:
                for i in range(self.front,self.capacity):
                    print(self.queue[i],end="")
                for i in range (0,self.rear+1):
                    print(self.queue[i],end="")
                print()
                
                
        if __name__=="__main__":
            cq=CircularQueue(5)
            
            cq.enqueue(1)
            cq.enqueue(2)  
            cq.enqueue(3)  
            cq.enqueue(4) 
            cq.enqueue(5)
            cq.display()
            
            cq.enqueue(6)
            
            cq.dequeue()
            cq.display()
            
            cq.dequeue(6)
            cq.display()
            
            cq.dequeue()
            cq.dequeue()
            cq.dequeue()
            cq.dequeue()
            cq.display()
            
            cq.dequeue()
    
Editor is loading...
Leave a Comment