用数组实现队列

c++用数组实现队列 队列(queue) 的特点: 先进先出 数组实现: array: 存放元素 i: 下一个入队存放元素位置的下标 j: 下一个出队删除元素位置的下表 size: 队列的最大长度 num: 队列中当前元素个数 #include <iostream> using namespace std; template<typename T> class queue{ public... 阅读详情

第一个只能用一次先是创造数据结构(最大值,俩索引,存数据的),用构造器初始化,判断空或者满,增加,取出

package com.sparseArray.queue;

//使用数据模拟队列
class ArrayQueue{
    private int maxSize;
    private int front;
    private int rear;
    private int arr[];

    //创建构造器(用来初始化)
    public ArrayQueue(int arrmaxSize){
        maxSize = arrmaxSize;
        arr = new int[maxSize];
        front = -1;//指向队列头的前一个位置
        rear = -1;//指向队尾
    }

    public boolean isFull(){
        return  rear == maxSize - 1;
    }
    public  boolean isEmpty(){
        return rear  == front;
    }

    public void addQueue(int n){
        if (isFull()){
            System.out.println("队列已满");
            return;
        }
        rear++;//rear后移
        arr[rear] = n;
    }
    //获取队列数据,出队列
    public int getQueue(){
        if(isEmpty()){
            throw new RuntimeException("队列空,无数据");
        }
        front++;//front后移
        return arr[front];
    }
    //显示队列所有数据
    public void showQueue(){
        if(isEmpty()){
            System.out.println("队列空,无数据");
            return;
        }
        for (int i = 0; i <arr.length ; i++) {
            System.out.printf("arr[%d]=%d\n",i,arr[i]);
        }
    }

    //显示队列的头数据
    public int headQueue(){
        if(isEmpty()){
            throw new RuntimeException("队列空,无数据");
        }
        return arr[front+1];
    }
}

测试

package com.sparseArray.queue;

import java.util.Scanner;

/**
 * @Auther: 大哥的叔
 * @Date: 2019/7/25 08:44
 * @Description:
 */
public class ArrayQueueDemo {
    public static void main (String[] args) {
    //测试
        ArrayQueue queue = new ArrayQueue(3);
        char key = ' ';//接收用户输入
        Scanner scanner = new Scanner(System.in);
        boolean loop = true;
        while (loop){
            System.out.println("s(show):显示队列");
            System.out.println("e:退出");
            System.out.println("a:添加");
            System.out.println("g:取出");
            System.out.println("h:查看队列头的数据");
            key = scanner.next().charAt(0);//接收一个字符
            switch (key){
                case 's':
                    queue.showQueue();break;
                case 'a':
                    System.out.println("输出一个数");
                    int value = scanner.nextInt();
                    queue.addQueue(value);break;
                case 'g':
                    try {
                        int res = queue.getQueue();
                        System.out.printf("取出的数据是%d\n",res);
                    } catch (Exception e) {
                        System.out.println(e.getMessage());
                    }break;

                case 'h':
                    try {
                        int res = queue.headQueue();
                        System.out.printf("头数据是%d\n",res);
                    } catch (Exception e) {
                        System.out.println(e.getMessage());
                    }break;
                case 'e':
                    scanner.close();
                    loop = false;
                    break;
                    default:
                        break;
            }

        }
        System.out.println("退出");
    }
}

 

永磁同步电机自抗扰控制ADRC(位置环/速度环控制器)Matlab/Simulink仿真(S-Function) ESO是ADRC的核心,其作用是跟踪被控对象的输出,同时给出受控对象的各阶状态变量以及系统总扰动的实时估计,将其补偿到控制器中,实现动态补偿线性化。NLSEF采用非线性函数把TD产生的跟踪及微分信号与ESO给出的状态变量估计值之间的误差进行非线性组合得到初级控制量,然后同总扰动的补偿量一起生成最终的控制信号。自抗扰控制(ADRC)技术的核心思想是将简单的积分串联型视为标准模型,把系统模型中不同于标准型的部分和外部干扰之和视为总扰动,并将其扩张为一个新的状态。看作系统内外部扰动之和。令一个高阶状态变量为。 阅读详情

相关推荐

手把手实战:快速构建合同智能审查Agent

配置“模型供应商”,选择 “OpenAI-API-compatible”,输入申请到的 “API Key” 和 “URL” 后点击“保存”,如下图示例完成 “AlayaNew/DeepSeek-R1。至此,我们完成了合同智能审核Agent的构建,我们也可以在Dify中把这个智能体发布为API服务,这样企业其它应用如OA就可以通过API集成,在原合同流程中实现智能审核工作。该节点“输入变量”中,配置从“开始”节点中获取上传的文件,输出变量就是合同的内容,配置如下图。接下来我们开始创建智能体。

weixin_46880696的博客 4403

队列——数组实现

队列是一种先进先出的思想。(First In First Out) 关于队列的定义就不叙述了,百度比我讲的详尽的多,在这里说一下用数组实现队列的思想,并附上代码。 我们身边的与队列相关实例很多,火车站排队买票或是买饭是排队,都是队列。因此我们很容易想到,队列是有一个头一个尾的,新来的总是在尾,最先来的总是最先买票或是吃饭,当然,像插队一类的我们不做考虑,相信我们都不会喜欢这些的。 队列的成员...

yangwenxiao123456的博客 1万+

手把手推导APM的 sqrt_controller控制器

前言 玩过无人机的朋友对APM应该都不会陌生,如果是搞过多旋翼飞控且读过代码,肯定遇到过sqrt_controller控制器,它频繁的在位置、姿态控制中出现,所以非常有必要搞清楚这个控制原理。 下面以高度控制器为例来分析。 高度控制 APM的高度控制采用PID串级3环控制,即外环位置控制,中间速度控制,内环速度控制,如下图所示。 今天要讨论的sqrt_controller就是应用于位置控制器中。位置控制器的输出是速度控制器的参考reference输入,如果采用单P控制,其输出vel_ref = pos_e

周小逗的博客 3029

数组实现队列

数组实现队列 前言 面试遇到一道算法题: 使用一个数组来实现一个先进先出(FIFO)的队列。 思路 使用数组实现一个FIFO队列,很容易跟循环数组联系起来,首先使用两个指针来指向head、tail两个位置,也可以理解为first、last,假设数组的长度为n,数组下表从0开始,最后一个则为n-1,如果我们想让这个数组循环用起来的话,那么n-1后面就应该是0. 可能出现的情况 代码及测试代码 ...

mhc9348的专栏 703

SAP S4 HANA 新资产会计中的平行分类账估值

在资产会计中,我们可以设置使用折旧区域的平行分类账会计 我们需要根据涉及的会计原则定义折旧区域,在我们的方案中,公司 FR01 是一家国际集团的当地分支机构,公司 FR01 需要按照集团会计准则 IFRS 和当地 GAAP 会计准则报告财务报表。过账到 LG 会计原则(分类帐 2L)-->分类账 2L的 150 欧元损失 -->在 IFRS 折旧区域,我们有 100 欧元的收益,在 LG 折旧区域,我们有 150 欧元的损失,使用平行分类账 0L 和 2L,我们能够根据不同的会计原则进行平行估值。

yanzibing99的博客 1328

CTK Plugin Framework插件框架学习1--Qt编译CTK

【代码】Qt编译CTK。

贝勒里恩的博客 7432

【数据结构】数组实现队列(详细版)

队列是一种基本的数据结构,它是一种先进先出(First In First Out,FIFO)的线性结构。队列只允许在表的一端进行插入,而在另一端进行删除操作。这就相当于把数据排成一排,先插入的排在前面,后插入的排在后面,之后进行删除操作时也只能从前面依次删除。这种数据结构一般用于需要按照先后顺序进行处理的问题,如模拟系统、计算机网络中的缓存、操作系统中的进程调度等。队列的基本操作包括入队(插入元素到队尾)和出队(从队头删除元素)

2301_76606232的博客 5186

Ambari 安装部署教程(手把手教学)【超级详细】

本文为读者提供了一套超详细的 Apache Ambari 安装部署教程,采用手把手教学方式,适合初学者及大数据运维人员。内容涵盖前期准备、环境配置、Ambari Server 与 Agent 安装、集群初始化配置、常见问题排查等全流程操作,确保用户能够顺利搭建稳定的 Hadoop 大数据平台管理系统。

Five的博客 1万+

【队列】c++使用数组实现队列

数组队列 基本概念 代码实现 1 数组队列的类 2 判断队列是否满 3 判断队列是否为空 4 向队列中添加元素 5 从队列中取出元素 6 获取队列元素个数 7 显示队列所有元素 8 显示队列头元素 9 数组队列全部代码 10 测试代码 结果与分析 1 操作结果 2 分析与待改进 基本概念 队列是一个有序列表,可以用数组或是链表来实现。 遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出 使用数组来实现队列的示意图 .

yizhizainulii的博客 4454

DeerFlow 系列教程 第十八篇 | 实战案例三——用 DeerFlow 构建自定义 AI 工作流

在实际业务中,许多复杂的内容生产任务不是单一技能就能覆盖的。需要先调研某个主题的最新信息基于调研结果撰写结构化的文章或报告对报告中的数据进行可视化处理最终输出符合品牌风格的排版文档或演示文稿这些环节涉及不同的领域知识和工具链,单个内置技能无法完全覆盖。组合自定义技能、MCP 外部工具和多 Agent 协作,构建端到端的工作流。传统手工流程: DeerFlow 自定义工作流:搜索资料、阅读文献 用户描述需求│ │▼ ▼。

weixin_43674738的博客 204

rk3576 适配摄像头 (mipi 五摄)

在RK3576上实现五路CSI摄像头方案,核心思路是充分复用其视频输入接口,并通过巧妙的软件配置来实现。

weixin_35723192的博客 178

实现环形数组队列

看到一个很棒的环形数组队列实现方法,转载过来。 原网址:https://blog.youkuaiyun.com/xuanwolanxue/article/details/68925446 话不多说,上重点: 这里主要指的是队列的入队(enqueue)与出队(dequeue),对于链式队列来说,其入队和出队也就是链表的尾部插入与移除头部节点,这里就不多说...

sssuperqiqi的博客 9285

AI 时代嵌入式工程师的能力模型与学习路线:全系列收官

AI 时代嵌入式工程师的能力模型与学习路线:全系列收官

weixin_42162924的博客 34

用数组实现循环队列

<br />      若用数组实现队列一般会整成循环队列,要不队列没法用~~~实现的功能包括创建队列、入队列、出队列、读队列头~~~~~~~<br />/************************************************************************/ /* author : thomas E-mail: chenhua308@gmail.com */ /******

Thomas chen的专栏 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

使用数组实现队列

队列是一种有序列表,可以实现数据或链表来实现,队列遵循先入先出的原则,先存入的数据先取出,后存入的数据后取出。 队列的图形:maxSize代表数据的最大容量,front代表数组头部,rear代表数组的尾部。 1、下面直接通过代码来实现: public static void main(String[] args) { //操作队列数据 ...

煜城的博客 1004

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java之数组实现队列

使用数组实现顺序队列、环形队列,包括队列的介绍、思路分析、示意图和代码实现。

zavier的乌托邦 449

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

golang数组实现队列

题目描述: 实现一个队列,使其具有入队列,出队列,查看队列元素等功能。 队列介绍: 队列是一个有序列表,可以用数组或是链表来实现。 遵循先入先出的原则,即先存入队列的数据,要先取出。后存入要后取出。 方法一:数组实现 rear是队列最后(含最后) front是队列的最前元素(不含) 代码如下: package main import ( "errors" "fmt" "os" ) //...

疯狂的鸭血 1994

队列- 用数组实现环形队列

一、队列介绍 队列是一个有序列表,可以用数组或链表来实现; 队列遵循FIFO原则(first in first out ) 二、数组实现队列的思路分析 队列本身是有序列表,要生命一个队列,首先要定义: maxsize:队列最大容量; front:队列头部元素的下标(此处约定从0开始)即:队列的第一个元素就是arr[front]; rear:队列尾部元素的下一个位置(此处约定rear从0开始); 队列满:(rear+1)% maxsize == front; 队列空:rear==front; 当前队列中

zxjdC的博客 594

队列——使用数组实现队列(1)

2.2 队列(使用数组实现队列) 2.2.1 队列的一个使用场景 银行排队的案例:先到先排队,先处理业务 2.2.2 队列介绍 队列是一个有序列表,可以用数组或是链表来实现 遵循先进先出的原则。即:先进入队列的数据,要先取出,后存入的要后取出 示意图: rear指向队列尾部的数据,front指向队列头部数据的前一位,因为队列从0开始,所以队列的最后一个位置为队列的最大容量 maxSize-1 2.2.3 数组模拟队列思路 队列本身是有序.

qie ting feng yin的博客 1055

C++数组实现队列

数组队列

qq_44872819的博客 1341

Java数组实现队列

Java队列 Java队列的应用场景 ​ 银行排队叫号系统 队列介绍 ​ 队列是一个有序列表,可以用数组和链表来实现 ​ 队列有一个原则。即:先存入队列的数据要先取出。后存入的要后取出 数组模拟队列的思路分析 ​ 因为队列的输出、输入分别从前后端来处理,因此需要两个变量front及rear分别记录队列前后端的下标,front会随着输出而改变,而rear则是随着数据输入而改变。而MaxSize则是数组队列的大小。 ​ 创建一个数组队列的类,其中需要包含以下几个方法: ​ boolean isFull():判断

LZ_yuanhai的博客 1230

队列和数组的区别 因为对数组比较熟悉,所以通过数组来了解队列 队列的实现

数组是java中最基本的一种数据结构,可以理解为一种容器——在数组中可以放其他东西;数组一旦定义,他的长度就是固定的。 队列其实就是一个数组一样有序的存放对象;但与数组最大的区别就是,他可以自动增长 队列没有固定长度,队列的插入通过两个数组的相互交换行成。 但是,数组与队列的输出都是一样的,都是通过循环来实现输出 队列 1.为什么要使用队列 数组不能随意的添加或者删除空间。 2.如何实现队列 借助于数组和引用传递。 自定义队列就是用类来操作数组,将所有的操作用类封装起来,在类外是无法看到具体的操作 http

dianqicyuyan的博客 3522

基于数组实现的队列

/** * @author qcg * @version 2019/5/13. * @description 基于数组实现的队列 * 队列的类型:顺序队列、链式队列、循环队列、阻塞队列、并发队列 */ public class MyArrayQueue { private String[] items; // 队列大小 private int size = 0; ...

practice 747

用数组实现环形队列

用数组实现环形队列 1.概述 环形队列解决了上篇用数组实现的队列的缺点,即当添加了若干元素之后,再取出元素,数组前面的位置就无法再存入值。 package com.bhy.test; public class Demo2 { public static void main(String[] args) { CircleQueue queue = new CircleQueue(4); queue.add(1); queue.add(2);

无声的博客 233
上一篇: 稀疏数组的实现过程
下一篇: Python安装
大哥的叔
博客等级 码龄8年 72粉丝 295原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值