首页 > 其他分享 >顺序队列

顺序队列

时间:2022-10-19 16:11:33浏览次数:66  
标签:顺序 队列 Object Override maxSize front public rear

顺序队列:

在顺序队列中有queueElem,front,rear,maxSize

queueElem代表队列的存储空间

front代表队首的位置

rear代表队尾的位置的下一个位置。

maxSize代表最多放存储个数。





public class SqQuene implements  Iqueue{
    private Object[] queneElem;
    private int front;
    private int rear;
    private int maxSize;
public SqQuene(int maxSize){
    front=rear=0;
    queneElem=new Object[maxSize];
    this.maxSize=maxSize;
}


    @Override
    public void clear() {
        front=rear=0;
    }

    @Override
    public boolean isempty() {
        return rear==front;
    }

    @Override
    public int length() {
        return rear=front;
    }

    @Override
    public Object peek() {
    if(isempty()){
        return  null;}
    else {
        return queneElem[front];
    }
    }

    @Override
    public void offer(Object x) throws Exception {
    if(rear==maxSize)throw new Exception("队列满");
    queneElem[rear]=x;
    rear++;
    }

    @Override
    public Object poll() {
    if (rear==front)
        return null;
    Object p=queneElem[front];
    front++;
    return p;
    }

    @Override
    public void display() {
    if(!isempty()){
        for(int i=front;i<rear;i++){
            System.out.println(queneElem[i]+"");

        }

    }
    else {
        System.out.println("队列为空");
    }

    }
}
  public static void main(String[] args) throws Exception {
      SqQuene s1=new SqQuene(20);
      if(s1.isempty()){
          s1.offer("姓名:王昊");
          s1.offer("姓名:孔亚生");
          s1.offer("姓名:zx");
          s1.display();
          System.out.println(s1.peek());
      s1.poll();
      s1.display();
      }

    }

标签:顺序,队列,Object,Override,maxSize,front,public,rear
From: https://www.cnblogs.com/JK8395/p/16806639.html

相关文章

  • Day4:Python基础逻辑判断的优先顺序及不同数据类型间的转换
    1、逻辑判断优先级顺序优先级顺序,()>not>and>or#print(2>1and1<4)#print(2>1and1<4or2<3and9>6or2<4and3<2)#TorTorF#Tor......
  • 从FFmpeg输出日志中分析问题原因——记一次输出流顺序异常
    输出流的顺序怎么无法改变一个视频文件,常规地,会将视频流放在第一个位置,其次将音频流放到第二个位置。对于一些特殊的视频,想要改变其顺序,也是非常方便的,直接使用FFmpeg提供的......
  • Elasticsearch 线程池和队列问题,请先看这一篇
    手敲脑图串讲Elasticsearch核心知识点1、线程池相关线上实战问题问题1:从Kafka消费数据导入elasticsearch时,批量bulk写入抛异常被拒绝。ES集群四个节点,其中:两个节......
  • 技术分享| 消息队列Kafka群集部署
    一、简介1、介绍Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志......
  • 模块导入的句式、模块的查找顺序
    今日内容回顾目录今日内容回顾索引取值和迭代取值的差异模块简介导入模块的两种句式导入模块的补充循环导入问题判断文件类型模块的查找顺序绝对导入与相对导入包package......
  • 多层嵌套 promise then 执行顺序
    在看js事件循环的时候,看到一个有趣的promisethen执行顺序的题,想了好久,终于想明白了,这里记录一下。 大家先想下这里的执行顺序是什么。newPromise(resolve=>{......
  • 队列queue的poll()和remove()的区别
    队列是一个典型的先进先出(FIFO)的容器。即从容器的一端放入事物,从另一端取出,并且事物放入容器的顺序与取出的顺序是相同的。在Queue中poll()和remove()有什么区别相......
  • 技术分享| 消息队列Kafka群集部署
    一、简介1、介绍Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日......
  • 链表实现队列——————数据结构作业
    作业code2:-仿照作业code1的功能,将课本上链表的实现队列能完整实现-需要通过main函数调用并能进行友好的人机交互输入​​作业code1​​链表实现队列的代码:#include<bits/......
  • 数据结构作业的代码——————栈的顺序实现
    作业code1:将上课给的顺序表形式实现栈的程序补充(代码已发给大家):实现通过键盘进行插入实现通过键盘进行删除良好的人机交互发的代码:#include<stdio.h>#include<malloc.h>t......