python模拟队列(入出/清空队列基本操作)

队列简介

队列与栈的结构类似,但不同的是队列的出队操作是在队首元素进行的删除操作。基本原则是先进先出。

队列如何用python模拟

用列表,列表的功能非常强大,既能模拟堆栈又能模拟队列,出队的时候

  • 取出队首
  • 挪动队列元素
  • 整体队长-1

入队的时候,直接在尾部加入:

list.append(element)

如果对数据结构感兴趣,可以查看这篇博文:
执念斩长河专栏数据结构–目录

例子:用python模拟队列的入出队操作

实验效果

在这里插入图片描述
实验代码:

# -*- coding:utf-8 -*-

class PyQueue:
    def __init__(self, size=20):
        self.queue = []
        self.size = size
        self.end = -1

    def setSize(self, size):
        self.size = size

    def In(self,element):
        if self.end < self.size - 1:
            self.queue.append(element)
            self.end = self.end + 1
        else:
            raise QueueException('PyQueueFull')

    def Out(self):
        if self.end != -1:
            element = self.queue[0] # 取出出队的元素
            self.queue = self.queue[1:] # 挪位置
            self.end = self.end - 1 # 队长-1
            return element
        else:
            raise  QueueException('PyQueueEmpty')

    def End(self):
        return self.end

    def empty(self):
        self.queue = []
        self.end = -1

class QueueException(Exception):
    def __init__(self,data):
        self.data = data

    def __str__(self):
        return self.data


if __name__ == '__main__':
    print('创建队列.....')
    queue = PyQueue()
    print('入队列....')
    for i in range(20):
        queue.In(i);
    print('出队列...')
    print(queue.Out())
    print('打印队尾元素....')
    print(queue.End())
    print('清空队列....')
    queue.empty()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章