使用数组实现队列
2016-06-03 10:25
399 查看
队列
使用数组实现队列
/*
* 列队类
*/
public
classMyQueue {
//底层使用数组
private
long[] arr;
//有效数据的大小
private
int elements;
//队头
private
int front;
//队尾
private
int end;
/**
* 默认构造方法
*/
public MyQueue() {
arr = new
long[10];
elements = 0;
front = 0;
end = -1;
}
/**
* 带参数的构造方法,参数为数组的大小
*/
public MyQueue(int maxsize) {
arr = new
long[maxsize];
elements = 0;
front = 0;
end = -1;
}
/**
* 添加数据,从队尾插入
*/
public
void insert(long value) {
arr[++end] = value;
elements++;
}
/**
* 删除数据,从队头删除
*/
public
long remove() {
elements--;
return
arr[front++];
}
/**
* 查看数据,从队头查看
*/
public
long peek() {
return
arr[front];
}
/**
* 判断是否为空
*/
public
boolean isEmpty() {
return
elements == 0;
}
/**
* 判断是否满了
*/
public
boolean isFull() {
return
elements == arr.length;
}
}
public
classTestMyQueue {
public
static void main(String[] args) {
MyCycleQueuemq = newMyCycleQueue(4);
mq.insert(23);
mq.insert(45);
mq.insert(13);
mq.insert(1);
System.out.println(mq.isFull());
System.out.println(mq.isEmpty());
System.out.println(mq.peek());
System.out.println(mq.peek());
while (!mq.isEmpty()) {
System.out.print(mq.remove() +
" ");
}
System.out.println();
mq.insert(23);
mq.insert(45);
mq.insert(13);
mq.insert(1);
while (!mq.isEmpty()) {
System.out.print(mq.remove() +
" ");
}
}
}
运行结果:
true
false
23
23
2345 13 1
2345 13 1
使用数组实现队列
/*
* 列队类
*/
public
classMyQueue {
//底层使用数组
private
long[] arr;
//有效数据的大小
private
int elements;
//队头
private
int front;
//队尾
private
int end;
/**
* 默认构造方法
*/
public MyQueue() {
arr = new
long[10];
elements = 0;
front = 0;
end = -1;
}
/**
* 带参数的构造方法,参数为数组的大小
*/
public MyQueue(int maxsize) {
arr = new
long[maxsize];
elements = 0;
front = 0;
end = -1;
}
/**
* 添加数据,从队尾插入
*/
public
void insert(long value) {
arr[++end] = value;
elements++;
}
/**
* 删除数据,从队头删除
*/
public
long remove() {
elements--;
return
arr[front++];
}
/**
* 查看数据,从队头查看
*/
public
long peek() {
return
arr[front];
}
/**
* 判断是否为空
*/
public
boolean isEmpty() {
return
elements == 0;
}
/**
* 判断是否满了
*/
public
boolean isFull() {
return
elements == arr.length;
}
}
public
classTestMyQueue {
public
static void main(String[] args) {
MyCycleQueuemq = newMyCycleQueue(4);
mq.insert(23);
mq.insert(45);
mq.insert(13);
mq.insert(1);
System.out.println(mq.isFull());
System.out.println(mq.isEmpty());
System.out.println(mq.peek());
System.out.println(mq.peek());
while (!mq.isEmpty()) {
System.out.print(mq.remove() +
" ");
}
System.out.println();
mq.insert(23);
mq.insert(45);
mq.insert(13);
mq.insert(1);
while (!mq.isEmpty()) {
System.out.print(mq.remove() +
" ");
}
}
}
运行结果:
true
false
23
23
2345 13 1
2345 13 1
相关文章推荐
- 利用栈实现队列(C语言实现)
- 队列的实现
- 自己实现一个栈(Stack)和队列(Queue)
- 队列的相关实现
- 02_Flink Streaming SourceFunction
- OverlayManager::destroy(Overlay* overlay)可以优化
- 浅析Java中JSONObject和JSONArray使用
- 你不知道的关于计算机大师Dijkstra的事情
- Dom4j解析XML学习代码
- UVa 11464 Even Parity (二进制法枚举)
- 来来来,看看别人的CSS样式重置表
- GitHub前50名的Objective-C动画相关库
- Maven 手动添加 JAR 包到本地仓库
- 深入浅出学Hive——Hive参数
- 判断颜色是否合法的正则表达式
- 清理 iOS 项目不用的图片资源
- 硬币购物[HAOI2008][Codevs1869]
- 栈的实现
- iOS_如何画1px的线
- 解密:Jersey 入门指南系列1