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)