您现在的位置是:首页 > 正文

Python语言生成环形队列

2024-04-01 06:53:15阅读 7

下面是使用Python语言生成环形队列的代码示例:

class CircularQueue:
    def __init__(self, capacity):
        self.capacity = capacity
        self.queue = [None] * capacity
        self.front = -1
        self.rear = -1
    
    def enqueue(self, item):
        if ((self.rear + 1) % self.capacity == self.front):
            print("Queue is full\n")
        elif (self.front == -1):
            self.front = 0
            self.rear = 0
            self.queue[self.rear] = item
        else:
            self.rear = (self.rear + 1) % self.capacity
            self.queue[self.rear] = item
    
    def dequeue(self):
        if (self.front == -1):
            print("Queue is empty\n")
        elif (self.front == self.rear):
            temp = self.queue[self.front]
            self.front = -1
            self.rear = -1
            return temp
        else:
            temp = self.queue[self.front]
            self.front = (self.front + 1) % self.capacity
            return temp

在这个代码中,我们使用了一个类 CircularQueue 来表示环形队列。构造函数 init 接受一个 capacity 参数,表示队列的容量。在构造函数中,我们创建一个长度为 capacity 的列表,用来存储队列中的元素。我们还定义了两个变量 front 和 rear,分别表示队列的前端和后端。当队列为空时,这两个变量都被初始化为 -1。

在 enqueue 方法中,我们首先检查队列是否已满。如果是,我们输出一个错误消息。否则,我们检查队列是否为空。如果是,我们将 front 和 rear 都设置为 0,并将元素插入到队列中。否则,我们将 rear 向前移动一位,并将元素插入到队列中。

在 dequeue 方法中,我们首先检查队列是否为空。如果是,我们输出一个错误消息。否则,我们检查队列中是否只有一个元素。如果是,我们将 front 和 rear 都设置为 -1,并返回队列中唯一的元素。否则,我们返回队列的第一个元素,并将 front 向前移动一位。

网站文章

  • React Hooks 学习笔记

    React Hooks Hooks 1. React Hooks 介绍 1.1 React Hooks 是用来做什么的 对函数型组件进行增强,让函数型组件可以存储状态,可以拥有处理副作用的能力,让开发...

    2024-04-01 06:53:07
  • 查询Linux下文件格式.

    备忘file 命令可以查一个文件的格式readelf -h 可执行文件名. 可以查询可执行文件的详细的格式 向Windows中exeinfo 软件类转载于:https://www.cnblogs.com/lovesKey/p/11257144.html...

    2024-04-01 06:53:00
  • shell中echo命令详解

    linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法。

    2024-04-01 06:52:18
  • 【Spring】xml配置文件常用的头约束

    【Spring】xml配置文件常用的头约束

    xml配置文件中常用的头部xsd约束大全

    2024-04-01 06:52:11
  • ModuleNotFoundError: No module named ‘paddle‘

    ModuleNotFoundError: No module named ‘paddle‘

    2024-04-01 06:52:04
  • Alpha 冲刺 (1/10)

    Alpha 冲刺 (1/10)

    目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:来自双十一的爱 团队部分 后敬甲(组长) 过去两天完成了哪些任务 文字描述 Alpha版本的任务细分安排 leangoo团队管理完善 博客模板整理 GitHub代码/文档签入记录 暂无代码签入 接下来的计划 完善规范Github代码管理方法 团队项目进度跟进 还剩下哪些任务 继续跟进团...

    2024-04-01 06:51:56
  • c控制语句:分支和跳转

    c控制语句:分支和跳转

    1 if语句while循环的测试条件利用scanf()的返回值来结束循环,因为scanf()在读到非数字字符时会返回0。if语句被称为分支语句或选择语句,因为它相当于一个交叉点,程序需要在两条分支中选...

    2024-04-01 06:51:16
  • priority_queue 第三个模板参数和sort 的第三个形参的区别

    priority_queue 第三个模板参数和sort 的第三个形参的区别

    priority_queue 需要的是类型,根据类型,自己类内部定义对象来做;sort 需要的就直接是对象;根据传入对象来实现比较;(仿函数对象,自定义函数对象)传入greater 就是传入类型,因为这只是个类;传入greater() (带括号) 就是构造了一个这个类的对象,传入的是对象;...

    2024-04-01 06:51:09
  • 【Day_13】▲跳石板

    这条石板路要根据特殊的规则才能前进:对于小易当前所在的编号为K的 石板,小易单次只能往前跳K的一个约数(不含1和K)步,即跳到K+X(X为K的一个非1和本身的约数)的位置。本题的核心思想就是从初始位置...

    2024-04-01 06:51:02
  • SpringBoot 打包jar文件运行以后,数据库出现乱码问题

    SpringBoot 打包jar文件运行以后,数据库出现乱码问题

    springboot项目打成jar包以后,通过 java -jar xxx.jar运行后台以后,有时候会出现数据库乱码问题,当我们排除项目本身的配置文件中的配置,以及数据库中的编码格式以后,应该问题在...

    2024-04-01 06:50:23