Queues
A Queue
is a Linear Data Structure that follows the principle of FIFO
or the First-In and First-Out Principle. The values can be added to the rear of the queue (Enqueue)
and the values can be removed from the front of the queue (Dequeue)
. We will use a queue queue
of fixed length 4
. The various operations that can be performed on a Queue are :
-Enqueue
: In this process, a value is put into the queue
from the rear
or the back of the queue.
def enqueue(): global queue if(len(queue)==4): print("Cannot perform action, queue is full") else: a = int(input("Enter value: ")) # adds value to the end (rear) of the queue queue.append(a) print(f"{a} added to rear of the queue")
-Dequeue
: In this process, a value is removed
from the front of the queue
.
def dequeue(): global queue if len(queue) == 0: print("Cannot perform action, queue is empty") else: print(f"Dequeued value: {queue[0]}") # removes the value from the front of the queue queue.pop(0)
-Peek
: In this process, the value at the front
of the queue is displayed
.
def peek(): global queue if len(queue) == 0: print("Queue is empty") else: print(f"Front value of Queue: {queue[0]}")
-Rear
: In this process, the value at the rear
of the queue is displayed
.
def rear(): global queue if len(queue) == 0: print("Queue is empty") else: print(f"Rear value of Queue: {queue[-1]}")
-State_of_Queue
: This function combines
the operations is_empty()
, which tells you whether or not the queue is empty, and is_full()
, which tells you whether or not the queue is full. The function of the operation is:
def state_of_queue(): if len(queue) == 4: print("Queue is full") elif len(queue) == 0: print("Queue is empty") else: print("Queue is partially empty")
To simulate the functioning of a queue, the complete code is given below:
import array as ar ## Global variables queue = ar.array('i', []) def enqueue(): global queue if(len(queue)==4): print("Cannot perform action, queue is full") else: a = int(input("Enter value: ")) # adds value to the end (rear) of the queue queue.append(a) print(f"{a} added to rear of the queue") def dequeue(): global queue if len(queue) == 0: print("Cannot perform action, queue is empty") else: print(f"Dequeued value: {queue[0]}") # removes the value from the front of the queue queue.pop(0) def peek(): global queue if len(queue) == 0: print("Queue is empty") else: print(f"Front value of Queue: {queue[0]}") def rear(): global queue if len(queue) == 0: print("Queue is empty") else: print(f"Rear value of Queue: {queue[-1]}") def state_of_queue(): if len(queue) == 4: print("Queue is full") elif len(queue) == 0: print("Queue is empty") else: print("Queue is partially empty") ## Driver Code while True: print("1.Enqueue\n2.Dequeue\n3.Peek\n4.Rear\n5.State of Queue\n6.Exit") ch = int(input("Enter choice: ")) if ch == 1: enqueue() elif ch == 2: dequeue() elif ch == 3: peek() elif ch == 4: rear() elif ch == 5: state_of_queue() else: break
Another type of queue is called as a circular queue
and can be read here
Top comments (0)