队列的基本操作(Python语言实现)

队列(queue),是一种先进先出的基本数据结构。在具体的应用中通常用链表(C语言)或者数组来实现。队列只允许在尾部(rear)进行入队(enqueue)操作,在头部(front)进行出队(dequeue)操作。

下面是通过编写代码实现队列的一些基本操作(注意啦:这些不是已经封装好的库函数,而是需要自己编写的):

  • Queue()创建队列
  • enqueue(element)向队列尾部添加一个元素
  • dequeue()返回队首的项,并且从队列中删除该项
  • empty()判断队列是否为空
  • size()返回队列中项的个数

队列的操作示意如下图所示:

Queue类中内置3个参数:

  • front 代表队列首的索引,默认初始化为0
  • rear 代表队尾元素的后一个索引,默认初始化为0(和C语言描述的队列一样的)
  • queue 作为实现队列的列表

四个基本操作函数的功能描述:

  • enqueue()操作将元素插入list的最后一位,同时rear指向的位置向后移动一位
  • dequeue()操作将front索引指向的位置向后移动一位
  • size()操作将返回rearfront索引之差 
  • empty()操作判断当前的rearfront索引是否相等,如果相等则代表队列为空

下面是具体的函数代码实现(需要调用哪个函数在主函数中类实例化后调用即可):

# 类的初始化
class Queue(object):
    def __init__(self):
        self.queue = []
        self.front = 0
        self.rear = 0

# 获取队列的当前长度
    def size(self):
        return self.rear-self.front

# 入队
    def enqueue(self,element):
        self.queue.append(element)
        self.rear += 1

# 出队
    def dequeue(self):
        print(self.queue[self.front])
        self.front += 1

# 判断队列是否为空
    def empty(self):
        if self.front == self.rear:
            return True
        else:
            return False
发布了14 篇原创文章 · 获赞 8 · 访问量 1611

猜你喜欢

转载自blog.csdn.net/Zhongtongyi/article/details/95602910
今日推荐