GitHub Viewer
package queue;
/**
* Created by ozc on 2018/3/28.
*
* @author ozc
* @version 1.0
*/
public class QueueTest {
public static void main(String[] args) {
//初始化队列
Queue queue = new Queue();
queue.front = 0;
queue.rear = 0;
queue.arrays = new int[6];
isEmpty(queue);
//入队
enQueue(queue, 3);
enQueue(queue, 1);
enQueue(queue, 2);
enQueue(queue, 4);
enQueue(queue, 6);
//遍历队列
traverseQueue(queue);
//出队
outQueue(queue);
outQueue(queue);
outQueue(queue);
outQueue(queue);
outQueue(queue);
outQueue(queue);
}
/**
* 判断队列是否满了,front和rear指针紧挨着,就是满了
* @param queue
* @return
*/
public static boolean isFull(Queue queue) {
if ((queue.rear + 1) % queue.arrays.length == queue.front) {
System.out.println("关注公众号:Java3y--->此时队列满了!");
return true;
} else {
System.out.println("关注公众号:Java3y--->此时队列没满了!");
return false;
}
}
/**
* 判断队列是否空,front和rear指针相等,就是空了
* @param queue
* @return
*/
public static boolean isEmpty(Queue queue) {
if (queue.rear == queue.front) {
System.out.println("关注公众号:Java3y--->此时队列空的!");
return true;
} else {
System.out.println("关注公众号:Java3y--->此时队列非空!");
return false;
}
}
/**
* 入队
*
* @param queue
*/
public static void enQueue(Queue queue,int value) {
// 不是满的队列才能入队
if (!isFull(queue)) {
// 将新的元素插入到队尾中
queue.arrays[queue.rear] = value;
// rear节点移动到新的无效元素位置上
queue.rear = (queue.rear + 1) % queue.arrays.length;
}
}
/**
* 遍历队列
* @param queue
*
*/
public static void traverseQueue(Queue queue) {
// front的位置
int i = queue.front;
while (i != queue.rear) {
System.out.println("关注公众号:Java3y--->" + queue.arrays[i]);
//移动front
i = (i + 1) % queue.arrays.length;
}
}
/**
* 出队
*
* @param queue
*/
public static void outQueue(Queue queue) {
//判断该队列是否为null
if (!isEmpty(queue)) {
//不为空才出队
int value = queue.arrays[queue.front];
System.out.println("关注公众号:Java3y--->出队的元素是:" + value);
// front指针往后面移
queue.front = (queue.front + 1) % queue.arrays.length;
}
}
}