您的位置:首页 > 其它

算法 之 队列的简单创建

2015-11-30 11:53 239 查看
相对于其他的数据结构,队列是十分简单的。这里也不多做讲解,只是用代码来写一个简单的队列,让实现插入和删除等操作:

package Queue;

public class Queue{
private int maxSize;          //队列的容量存储大小
private long[] queueArray;    //用数组来存储队列的对象
private int front;            //队列的头指针
private int rear;            //队列的尾指针
private int nElems;            //用于表示队列的长度

public Queue(int s){
maxSize = s ;
queueArray = new long[maxSize];
front = 0;
rear = -1;
nElems = 0;
}
//向队列中加入数据
public void insert(long value){
if (rear == maxSize - 1) {
rear = -1;
}
queueArray[++rear] = value;
nElems++;
}
//从队列中移除数据
public long remove(){
long temp = queueArray[front++];
if (front == maxSize) {
front = 0;
}
nElems--;
return temp;
}
//查看当前的队首元素
public long peek(){
return queueArray[front];
}
//判断队列是否为空
public boolean isEmpty() {
return (nElems == 0);
}
//判断队列是否已满
public boolean isFull(){
return (nElems == maxSize-1);
}
//队列的大小
public int size(){
return nElems;
}
}


在代码中测试:

package Queue;

public class QueueApp {
public static void main(String[] args){
Queue queue = new Queue(5);
queue.insert(10);
queue.insert(20);
queue.insert(30);
queue.insert(40);

queue.remove();
queue.remove();

queue.insert(22);
queue.insert(33);
while(!queue.isEmpty()){
long n = queue.remove();
System.out.print(" " + n);
}
System.out.println();
}
}


结果:

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