package com.demo.calculate.queue;
import android.util.Log;
public class Queue {
//对尾 指向队列最后一个位置的下一个位置;队列的长度比数组的长度小1
private int rear;
//队头 指向队列的第一位置
private int front;
private int[] array;
public Queue(int capacity){
array = new int[capacity];
}
/**
* 入队操作
*/
public void enQueue(int element){
//判断队列是不是满了
if (isFull()){
try {
throw new Exception("队列已满");
} catch (Exception e) {
e.printStackTrace();
}
}
//往队尾里面添加元素 队尾指针后移
array[rear] = element;
rear = (rear+1)%array.length;
}
/**
* 出队
*/
public int deQueue(){
if (isEmpty()){
try {
throw new Exception("队列为空");
} catch (Exception e) {
e.printStackTrace();
}
}
int element = array[front];
front = (front+1)%array.length;
return element;
}
/**
* 判断队列是不是满了
*/
public boolean isFull(){
return (rear+1)%array.length == front;
}
/**
* 判断队队列为空
*/
public boolean isEmpty(){
return rear == front;
}
/**
* 显示所有数据
*/
public void outPut(){
for (int i = front; i!=rear ; i = (i+1)%array.length) {
Log.i("tag",array[i]+"");
}
}
}
package com.demo.calculate;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import com.demo.calculate.queue.Queue;
public class QueueActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_queue);
findViewById(R.id.btn_addQueue).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
test();
}
});
}
private void test() {
try {
Queue queue = new Queue(6);
queue.enQueue(5);
queue.enQueue(4);
queue.enQueue(3);
queue.enQueue(2);
queue.enQueue(1);
queue.deQueue();
queue.deQueue();
queue.deQueue();
queue.enQueue(6);
queue.enQueue(7);
queue.outPut();
} catch (Exception e) {
e.printStackTrace();
}
}
}