欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

算法与数据结构(二) - 线性结构之队列

程序员文章站 2024-03-18 12:17:46
...

数组,栈,队列都是顺序存储

队列

算法与数据结构(二) - 线性结构之队列
队列遵循新进新出的原则,就像排队办理业务,先排队的先办理

实现(他的为空及取数据方法与stack类似):

package com.company;

/**
 * @author Shuoshi.Yan
 * @package:com.company
 * @className:
 * @description:
 * @date 2019-11-07 10:37
 * @version:V1.0
 * @NOTICE:本内容仅限于xxx有限公司内部传阅,禁止外泄以及用于其他的商业项目
 * @ Copyright  xxx. All rights reserved.
 **/

public class MyQueue {
    int[] myQueue;

    public MyQueue(){
        myQueue = new int[0];
    }
    //入队
    public void add(int sta){
        //添加一个新的数组,数组的长度是myStack的长度+1
        int[] myQueues = new int[myQueue.length + 1];
        //将myStack数组的元素复制到新数组中
        System.arraycopy(myQueue,0,myQueues,0,myQueue.length);
        //将添加的元素放在新数组的最后位置
        myQueues[myQueues.length - 1] = sta;
        //替换原数组
        myQueue = myQueues;
    }
    //出队
    public int poll(){
        //判断队列中是否有元素
        if(myQueue.length <= 0){
            return -1;
        }
        //获取第一个元素
        int start = myQueue[0];
        int[] myQueues = new int[myQueue.length - 1];
        //将原数组复制到新数组中,从第二个元素开始
        System.arraycopy(myQueue,1,myQueues,0,myQueue.length - 1);
        //替换原数组
        myQueue = myQueues;
        return start;
    }

    public static void main(String[] args) {
        MyQueue myQueue = new MyQueue();
        myQueue.add(1);
        myQueue.add(3);
        myQueue.add(4);
        System.out.println(myQueue.poll());
        System.out.println(myQueue.poll());
        System.out.println(myQueue.poll());
        System.out.println(myQueue.poll());

    }
}

结果:
算法与数据结构(二) - 线性结构之队列