算法与数据结构(二) - 线性结构之队列
程序员文章站
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());
}
}
结果:
上一篇: 数据结构 顺序队列 循环队列 基本操作