基于数组实现JAVA的队列存储结构

本文深入探讨了队列这一特殊线性表的数据结构,详细解释了队列的基本概念,包括队头(front)和队尾(rear)的概念,以及队列遵循的先进先出(FIFO)原则。文章还提供了一个使用Java实现的队列类,包括构造方法、插入(insert)、删除(remove)、查看队头元素(peekFront)、判断队列是否为空(isEmpty)、判断队列是否已满(isFull)以及获取队列元素个数(size)等方法,并通过一个测试类展示了队列的实际应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

队列是一种特殊的线性表,它只允许在表的前段(front)进行删除操作,只允许在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。

对于一个队列来说,每个元素总是从队列的rear端进入队列,然后等待该元素之前的所有元素出队之后,当前元素才能出对,遵循先进先出(FIFO)原则。

public class Queue {
    private int max_size;
    private int[] queueArry;
    private int front;
    private int rear;
    private int number;
    public Queue(int i){                //构造方法
        max_size=i;
        queueArry=new int[max_size];
        front=0;
        rear=-1;
        number=0;
    }
    public void insert(int i){          //入列
       /* if(rear==max_size-1){
            rear=-1;
        }*/
        queueArry[++rear]=i;
        number++;
    }
    public int remove(){                //出列
        int temp=queueArry[front++];
       /* if(front==max_size){
            front=0;
        }*/
        number--;
        return temp;
    }
    public int peekFront(){           //查看队头元素
        return queueArry[front];
    }
    public boolean isEmpty(){         //判空
        return (number==0);
    }
    public boolean isFull(){          //判满
        return (number==max_size);
    }
    public int size(){                //队列元素个数
        return number;
    }
}

测试类

public class QueueApp {
    public static void main(String args[]){
            Queue queue=new Queue(10);       //创建一个固定长度的队列
            queue.insert(5);
            queue.insert(3);
            queue.insert(7);
            queue.insert(2);    //5 3 7 2 
            queue.remove();
            queue.remove();     // 7 2 
            queue.insert(9);
            queue.insert(1);
            queue.insert(8);    //7 2 9 1 8
            while (!queue.isEmpty()){
                System.out.print( queue.remove()+" ");
            }
    }
}

运行结果:7 2 9 1 8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值