1.队列
队列是先进先出的线性表。在具体应用中通常用链表或者数组来实现。
2.对队列的操作
队列我们可以想像成一个数组,每次插入插入在数组的最后一位,取从第一位来取。
队列主要的操作有以下几个:
(1)入队;
(2)出队;
(3)判断队列是否为空。
package cn.kimtian.array.queue;
/**
* 队列的操作
*
* @author kimtian
*/
public class MyQueue {
/**
* 队列的底层我们可以使用数组来存储数据
*/
int[] elements;
public MyQueue() {
elements = new int[0];
}
/**
* 入队操作
*
* @param element 入队元素
*/
public void addQueue(int element) {
// 创建一个新的数组
int[] newArr = new int[elements.length + 1];
// 把原数组中的元素复制到新的数组中
for (int i = 0; i < elements.length; i++) {
newArr[i] = elements[i];
}
// 把添加的元素放入新数组中
newArr[elements.length] = element;
// 使用新数组替换老数组
elements = newArr;
}
/**
* 出队操作
*/
public int pollQueue() {
// 栈是空的
if (elements.length == 0) {
throw new RuntimeException("queue is empty!");
}
// 把数组的0的位置的元素取出来
int element = elements[0];
// 创建一个新的数组
int[] newArr = new int[elements.length - 1];
// 把原数组中的元素复制到新的数组中
for (int i = 1; i < elements.length; i++) {
newArr[i - 1] = elements[i];
}
// 使用新数组替换老数组
elements = newArr;
return element;
}
/**
* 判断队列是否为空
*/
public boolean isQueueEmpty() {
return elements.length == 0;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。