1.用数组的方式实现队列和循环队列

1.队列的认知

1.1队列的初认知:

  • 生活实际中的队列:例如银行排队,取餐排队等等
  • 队列的特点:先进先出

2实现队列的方式:

  • 数组(顺序存储)
  • 链表(非线性存储);

3.数组实现队列的思路

如图所示:

Maxsize为数组的最大长度。front 为队列的头指针,rear为队列的尾指针,最开始他们都指向-1;

当队列为空时:rear= front;

当队列已满时:rear = Maxsize-1;

4.数组模拟队列的构建,出队,入队的操作

4.1队列的构造和入队出队

public class Queue {
   
    int maxSize;//队列最大容量
    int rear;//模拟队尾头指针
    int front;//模拟队列头指针
    Object[] array; //使用数组模拟队列

    /**
     * 队列初始化
     *
     * @param maxSize 队列最大容量
     * @return
     */
    public Queue(int maxSize) {
   
        rear = -1;
        front = -1;
        this.maxSize = maxSize;
        this.array = new Object[maxSize];
    }


    /**
     * 入队方法
     *
     * @param e 入队元素
     * @return
     */
    public boolean enQueue(int e) {
   
        if (rear >= maxSize - 1) {
   
            System.out.println("队满,入队失败!");
            return false;
        } else {
   
            rear++;//指针后移
            array[rear] = e;//存入元素,入队
        }
        return true;

    }

    /**
     * 出队方法
     *
     * @return
     */
    public Object deQueue() {
   
        if (front == rear) {
   
            System.out.println("队空,出队失败!");
            throw 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值