Introduction to Queues

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.

<span>def</span> <span>enqueue</span><span>():</span>
<span>global</span> <span>queue</span>
<span>if</span><span>(</span><span>len</span><span>(</span><span>queue</span><span>)</span><span>==</span><span>4</span><span>):</span>
<span>print</span><span>(</span><span>"</span><span>Cannot perform action, queue is full</span><span>"</span><span>)</span>
<span>else</span><span>:</span>
<span>a</span> <span>=</span> <span>int</span><span>(</span><span>input</span><span>(</span><span>"</span><span>Enter value: </span><span>"</span><span>))</span>
<span># adds value to the end (rear) of the queue </span> <span>queue</span><span>.</span><span>append</span><span>(</span><span>a</span><span>)</span>
<span>print</span><span>(</span><span>f</span><span>"</span><span>{</span><span>a</span><span>}</span><span> added to rear of the queue</span><span>"</span><span>)</span>
<span>def</span> <span>enqueue</span><span>():</span>
    <span>global</span> <span>queue</span>
    <span>if</span><span>(</span><span>len</span><span>(</span><span>queue</span><span>)</span><span>==</span><span>4</span><span>):</span>
        <span>print</span><span>(</span><span>"</span><span>Cannot perform action, queue is full</span><span>"</span><span>)</span>
    <span>else</span><span>:</span>
        <span>a</span> <span>=</span> <span>int</span><span>(</span><span>input</span><span>(</span><span>"</span><span>Enter value: </span><span>"</span><span>))</span>
        <span># adds value to the end (rear) of the queue </span>        <span>queue</span><span>.</span><span>append</span><span>(</span><span>a</span><span>)</span>
        <span>print</span><span>(</span><span>f</span><span>"</span><span>{</span><span>a</span><span>}</span><span> added to rear of the queue</span><span>"</span><span>)</span>
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")

Enter fullscreen mode Exit fullscreen mode

Dequeue: In this process, a value is removed from the front of the queue.

<span>def</span> <span>dequeue</span><span>():</span>
<span>global</span> <span>queue</span>
<span>if</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>0</span><span>:</span>
<span>print</span><span>(</span><span>"</span><span>Cannot perform action, queue is empty</span><span>"</span><span>)</span>
<span>else</span><span>:</span>
<span>print</span><span>(</span><span>f</span><span>"</span><span>Dequeued value: </span><span>{</span><span>queue</span><span>[</span><span>0</span><span>]</span><span>}</span><span>"</span><span>)</span>
<span># removes the value from the front of the queue </span> <span>queue</span><span>.</span><span>pop</span><span>(</span><span>0</span><span>)</span>
<span>def</span> <span>dequeue</span><span>():</span>
    <span>global</span> <span>queue</span>

    <span>if</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>0</span><span>:</span>
        <span>print</span><span>(</span><span>"</span><span>Cannot perform action, queue is empty</span><span>"</span><span>)</span>
    <span>else</span><span>:</span>
        <span>print</span><span>(</span><span>f</span><span>"</span><span>Dequeued value: </span><span>{</span><span>queue</span><span>[</span><span>0</span><span>]</span><span>}</span><span>"</span><span>)</span>
        <span># removes the value from the front of the queue </span>        <span>queue</span><span>.</span><span>pop</span><span>(</span><span>0</span><span>)</span>
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)

Enter fullscreen mode Exit fullscreen mode

Peek: In this process, the value at the front of the queue is displayed.

<span>def</span> <span>peek</span><span>():</span>
<span>global</span> <span>queue</span>
<span>if</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>0</span><span>:</span>
<span>print</span><span>(</span><span>"</span><span>Queue is empty</span><span>"</span><span>)</span>
<span>else</span><span>:</span>
<span>print</span><span>(</span><span>f</span><span>"</span><span>Front value of Queue: </span><span>{</span><span>queue</span><span>[</span><span>0</span><span>]</span><span>}</span><span>"</span><span>)</span>
<span>def</span> <span>peek</span><span>():</span>
    <span>global</span> <span>queue</span>

    <span>if</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>0</span><span>:</span>
        <span>print</span><span>(</span><span>"</span><span>Queue is empty</span><span>"</span><span>)</span>
    <span>else</span><span>:</span>
        <span>print</span><span>(</span><span>f</span><span>"</span><span>Front value of Queue: </span><span>{</span><span>queue</span><span>[</span><span>0</span><span>]</span><span>}</span><span>"</span><span>)</span>
def peek(): global queue if len(queue) == 0: print("Queue is empty") else: print(f"Front value of Queue: {queue[0]}")

Enter fullscreen mode Exit fullscreen mode

Rear: In this process, the value at the rear of the queue is displayed.

<span>def</span> <span>rear</span><span>():</span>
<span>global</span> <span>queue</span>
<span>if</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>0</span><span>:</span>
<span>print</span><span>(</span><span>"</span><span>Queue is empty</span><span>"</span><span>)</span>
<span>else</span><span>:</span>
<span>print</span><span>(</span><span>f</span><span>"</span><span>Rear value of Queue: </span><span>{</span><span>queue</span><span>[</span><span>-</span><span>1</span><span>]</span><span>}</span><span>"</span><span>)</span>
<span>def</span> <span>rear</span><span>():</span>
    <span>global</span> <span>queue</span>

    <span>if</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>0</span><span>:</span>
        <span>print</span><span>(</span><span>"</span><span>Queue is empty</span><span>"</span><span>)</span>
    <span>else</span><span>:</span>
        <span>print</span><span>(</span><span>f</span><span>"</span><span>Rear value of Queue: </span><span>{</span><span>queue</span><span>[</span><span>-</span><span>1</span><span>]</span><span>}</span><span>"</span><span>)</span>
def rear(): global queue if len(queue) == 0: print("Queue is empty") else: print(f"Rear value of Queue: {queue[-1]}")

Enter fullscreen mode Exit fullscreen mode

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:

<span>def</span> <span>state_of_queue</span><span>():</span>
<span>if</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>4</span><span>:</span>
<span>print</span><span>(</span><span>"</span><span>Queue is full</span><span>"</span><span>)</span>
<span>elif</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>0</span><span>:</span>
<span>print</span><span>(</span><span>"</span><span>Queue is empty</span><span>"</span><span>)</span>
<span>else</span><span>:</span>
<span>print</span><span>(</span><span>"</span><span>Queue is partially empty</span><span>"</span><span>)</span>
<span>def</span> <span>state_of_queue</span><span>():</span>
    <span>if</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>4</span><span>:</span>
        <span>print</span><span>(</span><span>"</span><span>Queue is full</span><span>"</span><span>)</span>
    <span>elif</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>0</span><span>:</span>
        <span>print</span><span>(</span><span>"</span><span>Queue is empty</span><span>"</span><span>)</span>
    <span>else</span><span>:</span>
        <span>print</span><span>(</span><span>"</span><span>Queue is partially empty</span><span>"</span><span>)</span>
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")

Enter fullscreen mode Exit fullscreen mode

To simulate the functioning of a queue, the complete code is given below:

<span>import</span> <span>array</span> <span>as</span> <span>ar</span>
<span>## Global variables </span>
<span>queue</span> <span>=</span> <span>ar</span><span>.</span><span>array</span><span>(</span><span>'</span><span>i</span><span>'</span><span>,</span> <span>[])</span>
<span>def</span> <span>enqueue</span><span>():</span>
<span>global</span> <span>queue</span>
<span>if</span><span>(</span><span>len</span><span>(</span><span>queue</span><span>)</span><span>==</span><span>4</span><span>):</span>
<span>print</span><span>(</span><span>"</span><span>Cannot perform action, queue is full</span><span>"</span><span>)</span>
<span>else</span><span>:</span>
<span>a</span> <span>=</span> <span>int</span><span>(</span><span>input</span><span>(</span><span>"</span><span>Enter value: </span><span>"</span><span>))</span>
<span># adds value to the end (rear) of the queue </span> <span>queue</span><span>.</span><span>append</span><span>(</span><span>a</span><span>)</span>
<span>print</span><span>(</span><span>f</span><span>"</span><span>{</span><span>a</span><span>}</span><span> added to rear of the queue</span><span>"</span><span>)</span>
<span>def</span> <span>dequeue</span><span>():</span>
<span>global</span> <span>queue</span>
<span>if</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>0</span><span>:</span>
<span>print</span><span>(</span><span>"</span><span>Cannot perform action, queue is empty</span><span>"</span><span>)</span>
<span>else</span><span>:</span>
<span>print</span><span>(</span><span>f</span><span>"</span><span>Dequeued value: </span><span>{</span><span>queue</span><span>[</span><span>0</span><span>]</span><span>}</span><span>"</span><span>)</span>
<span># removes the value from the front of the queue </span> <span>queue</span><span>.</span><span>pop</span><span>(</span><span>0</span><span>)</span>
<span>def</span> <span>peek</span><span>():</span>
<span>global</span> <span>queue</span>
<span>if</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>0</span><span>:</span>
<span>print</span><span>(</span><span>"</span><span>Queue is empty</span><span>"</span><span>)</span>
<span>else</span><span>:</span>
<span>print</span><span>(</span><span>f</span><span>"</span><span>Front value of Queue: </span><span>{</span><span>queue</span><span>[</span><span>0</span><span>]</span><span>}</span><span>"</span><span>)</span>
<span>def</span> <span>rear</span><span>():</span>
<span>global</span> <span>queue</span>
<span>if</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>0</span><span>:</span>
<span>print</span><span>(</span><span>"</span><span>Queue is empty</span><span>"</span><span>)</span>
<span>else</span><span>:</span>
<span>print</span><span>(</span><span>f</span><span>"</span><span>Rear value of Queue: </span><span>{</span><span>queue</span><span>[</span><span>-</span><span>1</span><span>]</span><span>}</span><span>"</span><span>)</span>
<span>def</span> <span>state_of_queue</span><span>():</span>
<span>if</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>4</span><span>:</span>
<span>print</span><span>(</span><span>"</span><span>Queue is full</span><span>"</span><span>)</span>
<span>elif</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>0</span><span>:</span>
<span>print</span><span>(</span><span>"</span><span>Queue is empty</span><span>"</span><span>)</span>
<span>else</span><span>:</span>
<span>print</span><span>(</span><span>"</span><span>Queue is partially empty</span><span>"</span><span>)</span>
<span>## Driver Code </span><span>while</span> <span>True</span><span>:</span>
<span>print</span><span>(</span><span>"</span><span>1.Enqueue</span><span>\n</span><span>2.Dequeue</span><span>\n</span><span>3.Peek</span><span>\n</span><span>4.Rear</span><span>\n</span><span>5.State of Queue</span><span>\n</span><span>6.Exit</span><span>"</span><span>)</span>
<span>ch</span> <span>=</span> <span>int</span><span>(</span><span>input</span><span>(</span><span>"</span><span>Enter choice: </span><span>"</span><span>))</span>
<span>if</span> <span>ch</span> <span>==</span> <span>1</span><span>:</span>
<span>enqueue</span><span>()</span>
<span>elif</span> <span>ch</span> <span>==</span> <span>2</span><span>:</span>
<span>dequeue</span><span>()</span>
<span>elif</span> <span>ch</span> <span>==</span> <span>3</span><span>:</span>
<span>peek</span><span>()</span>
<span>elif</span> <span>ch</span> <span>==</span> <span>4</span><span>:</span>
<span>rear</span><span>()</span>
<span>elif</span> <span>ch</span> <span>==</span> <span>5</span><span>:</span>
<span>state_of_queue</span><span>()</span>
<span>else</span><span>:</span>
<span>break</span>
<span>import</span> <span>array</span> <span>as</span> <span>ar</span>

<span>## Global variables </span>
<span>queue</span> <span>=</span> <span>ar</span><span>.</span><span>array</span><span>(</span><span>'</span><span>i</span><span>'</span><span>,</span> <span>[])</span>

<span>def</span> <span>enqueue</span><span>():</span>
    <span>global</span> <span>queue</span>
    <span>if</span><span>(</span><span>len</span><span>(</span><span>queue</span><span>)</span><span>==</span><span>4</span><span>):</span>
        <span>print</span><span>(</span><span>"</span><span>Cannot perform action, queue is full</span><span>"</span><span>)</span>
    <span>else</span><span>:</span>
        <span>a</span> <span>=</span> <span>int</span><span>(</span><span>input</span><span>(</span><span>"</span><span>Enter value: </span><span>"</span><span>))</span>
        <span># adds value to the end (rear) of the queue </span>        <span>queue</span><span>.</span><span>append</span><span>(</span><span>a</span><span>)</span>
        <span>print</span><span>(</span><span>f</span><span>"</span><span>{</span><span>a</span><span>}</span><span> added to rear of the queue</span><span>"</span><span>)</span>

<span>def</span> <span>dequeue</span><span>():</span>
    <span>global</span> <span>queue</span>

    <span>if</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>0</span><span>:</span>
        <span>print</span><span>(</span><span>"</span><span>Cannot perform action, queue is empty</span><span>"</span><span>)</span>
    <span>else</span><span>:</span>
        <span>print</span><span>(</span><span>f</span><span>"</span><span>Dequeued value: </span><span>{</span><span>queue</span><span>[</span><span>0</span><span>]</span><span>}</span><span>"</span><span>)</span>
        <span># removes the value from the front of the queue </span>        <span>queue</span><span>.</span><span>pop</span><span>(</span><span>0</span><span>)</span>

<span>def</span> <span>peek</span><span>():</span>
    <span>global</span> <span>queue</span>

    <span>if</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>0</span><span>:</span>
        <span>print</span><span>(</span><span>"</span><span>Queue is empty</span><span>"</span><span>)</span>
    <span>else</span><span>:</span>
        <span>print</span><span>(</span><span>f</span><span>"</span><span>Front value of Queue: </span><span>{</span><span>queue</span><span>[</span><span>0</span><span>]</span><span>}</span><span>"</span><span>)</span>

<span>def</span> <span>rear</span><span>():</span>
    <span>global</span> <span>queue</span>

    <span>if</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>0</span><span>:</span>
        <span>print</span><span>(</span><span>"</span><span>Queue is empty</span><span>"</span><span>)</span>
    <span>else</span><span>:</span>
        <span>print</span><span>(</span><span>f</span><span>"</span><span>Rear value of Queue: </span><span>{</span><span>queue</span><span>[</span><span>-</span><span>1</span><span>]</span><span>}</span><span>"</span><span>)</span>

<span>def</span> <span>state_of_queue</span><span>():</span>
    <span>if</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>4</span><span>:</span>
        <span>print</span><span>(</span><span>"</span><span>Queue is full</span><span>"</span><span>)</span>
    <span>elif</span> <span>len</span><span>(</span><span>queue</span><span>)</span> <span>==</span> <span>0</span><span>:</span>
        <span>print</span><span>(</span><span>"</span><span>Queue is empty</span><span>"</span><span>)</span>
    <span>else</span><span>:</span>
        <span>print</span><span>(</span><span>"</span><span>Queue is partially empty</span><span>"</span><span>)</span>


<span>## Driver Code </span><span>while</span> <span>True</span><span>:</span>
    <span>print</span><span>(</span><span>"</span><span>1.Enqueue</span><span>\n</span><span>2.Dequeue</span><span>\n</span><span>3.Peek</span><span>\n</span><span>4.Rear</span><span>\n</span><span>5.State of Queue</span><span>\n</span><span>6.Exit</span><span>"</span><span>)</span>

    <span>ch</span> <span>=</span> <span>int</span><span>(</span><span>input</span><span>(</span><span>"</span><span>Enter choice: </span><span>"</span><span>))</span>

    <span>if</span> <span>ch</span> <span>==</span> <span>1</span><span>:</span>
        <span>enqueue</span><span>()</span>
    <span>elif</span> <span>ch</span> <span>==</span> <span>2</span><span>:</span>
        <span>dequeue</span><span>()</span>
    <span>elif</span> <span>ch</span> <span>==</span> <span>3</span><span>:</span>
        <span>peek</span><span>()</span>
    <span>elif</span> <span>ch</span> <span>==</span> <span>4</span><span>:</span>
        <span>rear</span><span>()</span>
    <span>elif</span> <span>ch</span> <span>==</span> <span>5</span><span>:</span>
        <span>state_of_queue</span><span>()</span>
    <span>else</span><span>:</span>
        <span>break</span>
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

Enter fullscreen mode Exit fullscreen mode

Another type of queue is called as a circular queue and can be read here

Data Structures and Algorithms Series

图片[1]-Introduction to Queues - 拾光赋-拾光赋

Introduction to Arrays

TheCSPandz ・ Apr 9

#datastructures #algorithms
图片[1]-Introduction to Queues - 拾光赋-拾光赋

Introduction to Stacks

TheCSPandz ・ Apr 10


图片[1]-Introduction to Queues - 拾光赋-拾光赋

Introduction to Queues

TheCSPandz ・ Apr 13

#python #datastructures #algorithms
图片[1]-Introduction to Queues - 拾光赋-拾光赋

Introduction to Linked Lists

TheCSPandz ・ Apr 14

#datastructures #python
图片[1]-Introduction to Queues - 拾光赋-拾光赋

Introduction to Trees

TheCSPandz ・ May 2

#datastructures #python
图片[1]-Introduction to Queues - 拾光赋-拾光赋

Sorting Algorithms in Python

TheCSPandz ・ Aug 26

#python #algorithms

原文链接:Introduction to Queues

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
People are not just to love and live.
人不是仅仅为了爱而生存的
评论 抢沙发

请登录后发表评论

    暂无评论内容