Python中的队列数据结构和实现
#编码 #python #dsa #数据结构

概述

队列是一种线性数据结构,我们从两端访问了我们遵循的元素,并且遵循FIFO(首先是首先)原理。

让我们在一个示例的帮助下,首先理解第一个原理(FIFO),假设我们站在学校的一条集会线上,首先进入大会队列的学生首先从排队排出。

插入元素的侧面称为后部,而删除元素的侧面称为正面。

文章范围

  • 在本文中,我们将学习了解我们可以在队列中执行的不同操作。
  • 我们还将阅读有关其在Python的实现的不同类型的队列。
  • 我们还将阅读有关队列的应用。

介绍

现在,由于我们已经知道队列在第一个(FIFO)原理中遵循,并且在我们的日常生活中被我们广泛使用。

现在让我们阅读有关队列中可以执行的不同操作:

  1. Enqueue
  2. Dequeue
  3. Isempty
  4. isfull
  5. peek
  6. 正面
  7. 后方

现在让我们详细了解这些操作中的每一个:

顾问:

此操作用于在queue中添加元素。如果在任何条件下,后部索引会划出队列的大小,那么我们可以说队列已满,然后据说处于溢流状态。

执行此操作的时间复杂性为O(1)。

Dequeue:

由于使用者操作用于在队列中插入元素,因此使用dequeue操作来删除队列中的元素。如果后部指向-1,则没有更多要删除的元素,那么我们可以说队列处于下流条件下。

执行此操作的时间复杂性为O(1)。

是空的:

队列中的此操作用于检查队列是否为空。

已满:

通过isfull一词,我们可以理解此操作用于检查队列是否已满。

窥视:

此操作用于查找无需删除的队列的第一个元素的PEEK元素。它返回第一个元素的值而不删除它。

正面:

此操作用于从队列获取第一个元素。执行此操作的时间复杂性为O(1)。

后部:

此操作用于从队列获取最后一个元素。在队列中执行后部操作的时间复杂性为O(1)。

现在,由于我们已经阅读了可以在队列中执行的操作,让我们在Python中查看队列的实现:

在Python中实施队列:

queue1 = []
queue1.append('1')
queue1.append('4')
queue1.append('9')
queue1.append('87')
queue1.append('75')
print("Currently present elements present in the queue are :")
print(queue1)
print("The elements which are dequeued from the queue are ")
print(queue1.pop(0))
print(queue1.pop(0))
print(queue1.pop(0))
print(queue1.pop(0))
print("\nThe present elements present in the queue after removing the elements are :")
print(queue1)

输出

Initial elements which are present in the queue are
['1', '4', '9', '87', '75']

Elements which are dequeued from the queue  are
1
4
9
87

The present elements presnent in the queue after removing the elements are :
['75']

在上面的代码中,我们首先在队列中添加了五个元素,然后使用POP操作删除了队列中存在的前四个元素。

在编辑器中运行上述代码以进行更好,清晰的解释。

现在让我们使用Python中的列表查看队列实现:

queue=[]
def Enqueue():
    if len(queue)==size: 
        print("overflow!!Cannot insert more elements")
    else:
        element=input("Enter the element which u want to insert:")
        queue.append(element)
        queue.append(element)
        print("the above elements are added to the queue")
def dequeue():
    if not queue:
        print("Cannot delete more elements from the queue , Underflow condition!!!")
    else:
        removed_element=queue.pop(0)
        removed_element=queue.pop(0)
        print("The removed element from the queue are!!:",removed_element)
def display():
    print(queue)
    size=int(input("Enter the size of Queue which u want :"))
    while True:
        print("Select the Operation of your choices:1.Add elements in the queue 2.Delete elements from the queue 3. Display the current elenents from the queue 4. Exit from the queue ")
        choice=int(input())
        if choice==1:
            Enqueue()
        elif choice==2:
            dequeue()
        elif choice==3:
            display()
        elif choice==4:
            break
        else:
            print("Invalid Option! enter any other option")

在上述代码中使用Python中的列表中,我们实施了三个操作,这些操作是在队列中出现,Decqueue,DeSeble。我们为每个人创建了单独的功能。

在编辑器中运行代码以提供更好,清晰的解释。

现在让我们可以阅读有关队列类型:

队列类型:

它们主要是Python中的四种队列。它们如下:

  1. 简单队列
  2. 圆形队列
  3. 优先队列
  4. 双端队列

现在让我们详细阅读它们:

1.简单队列

简单的队列是正常的队列,其中插入和删除元素遵循FIFO(首先是首先)原理。

主要是使用简单队列的缺点,即首先输入的元素,首先要删除,因此,如果我们删除了所有8个元素,只剩下2个元素,则我们的队列有10个元素的队列元素。

2.圆形队列:

在此队列中,最后一个节点连接到队列的第一个元素,该队列解决了简单队列的问题,即如果我们要在开始和空的空间中添加元素,则可以直接添加元素到队列。

3.优先队列

在此中,队列的要素根据优先级排列。优先级的要素根据FIFO(首先是首先)原则排列。

4.然后

在这种类型的队列中,我们获得了一个好处,我们可以从后端或前端插入队列的两侧删除元素。字符串的一个很好的例子是,它的反向与原始相似。

队列在Python中的应用:

队列在真实的词中也使用,就像假设我们站在学校的一条集会线上,首先进入大会队列的学生首先从队列中出来。队列也用于CD播放器。

,也用于著名的社交媒体平台Whatsapp。队列也主要用于调度算法。这是我们在日常生活中使用的几乎没有队列的应用。

结论

  1. 队列在第一个原则中遵循第一个原则,在我们的日常生活中非常有用,
  2. 队列用于实现各种CPU调度算法。
  3. 在本文中,我们研究了队列的不同操作。
  4. 我们还在本文中阅读了其用途的队列类型。