您的位置:首页 > 其它

使用数组实现的简单队列结构

2015-09-24 17:52 519 查看
package com.hebtu.java.vector;

/**
* 使用数组实现的 队列
* @author Xmh
*
*/
public class MyQueue {

private int maxSize; //队列的大小
private long[] queue; // 保存 long 型的数组
private int front; // 队头下标
private int rear; // 队尾下标
private int nElement; // 队列中当前元素的个数

/**
* 初始化队列
* @param size
*/
public MyQueue(int size) {
maxSize = size;
queue = new long[maxSize];
front = 0;
rear = -1;
nElement = 0;
}

/**
* 向队列中插入数据
*/
public void insert(long a){
if(rear ==(maxSize-1)){ //如果队列满了
rear = -1;
}
queue[rear+1] = a;
rear = rear +1;
nElement = nElement + 1;
}

/**
* 出队列
* @return
*/
public long remove(){
long a = queue[front];
front = front + 1;
if(front == maxSize){
front = 0;
}
nElement = nElement -1;
return a;
}

/**
* 取队头元素
* @return
*/
public long peekFront(){
long a = queue[front];
return a;
}

/**
* 取队尾元素
* @return
*/
public long peekRear(){
return queue[nElement];
}

/**
* 判断队列是否为空
* @return
*/
public boolean isEmpty(){
if(nElement == 0){
return true;
}
return false;
}

/**
* 判断队列是否满了
* @return
*/
public boolean isFull(){
if(nElement==maxSize){
return true;
}
return false;
}

/**
* 返回队列中元素的个数
* @return
*/
public int size(){
return nElement;
}

public void display(){
for(long a:queue){
System.out.println(a);
}
}
}
package com.hebtu.java.vector;

public class MyQueueTest {

public static void main(String[] args) {
int size = 10;
MyQueue queue = new MyQueue(size);
queue.insert(2);
queue.insert(4);
queue.insert(6);
queue.insert(8);
queue.insert(10);

queue.insert(9);
queue.insert(7);
queue.insert(5);
queue.insert(3);
queue.insert(1);

//System.out.println(queue.size());
//queue.display();

while(!queue.isEmpty()){
long a = queue.remove();
System.out.print(a);
System.out.print(" ");
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: