自定义队列
class MyQueue{
private int SIZE;
private int[] a;
private int front;
private int rear;
private int size;
public MyQueue(int SIZE){
this.SIZE = SIZE;
a = new int[SIZE];
front = 0;
rear = -1;
size = 0;
}
public boolean insert(int e){
if(rear == SIZE - 1){
return false;
}else{
a[++rear] = e;
size++;
return true;
}
}
public int remove() throws Exception{
try{
if(rear==-1){
throw new Exception("队列为空的情况下仍试图移除队头元素!");
}
}catch(Exception e){
System.out.println("队列为空的情况下仍试图移除队头元素!");
e.printStackTrace();
}
{
int tmp = a[0];
for(int i = 1; i < size; i++){
a[i-1] = a[i];
}
size -= 1;
return tmp;
}
}
public int peek() throws Exception{
try{
if(rear==-1){
throw new Exception("队列为空的情况下仍试图获取队头元素!");
}
}catch(Exception e){
System.out.println("队列为空的情况下仍试图获取队头元素!");
e.printStackTrace();
}
return a[0];
}
public boolean isEmpty(){
return size == 0;
}
public boolean isFull(){
return size == SIZE;
}
public int size(){
return size;
}
public void print(){
for(int i = 0; i < size; i++){
System.out.print(a[i] + " ");
}
System.out.println();
}
}
public class Main{
public static void main(String[] args){
MyQueue queue = new MyQueue(10);
System.out.println("入队:");
queue.insert(1);
queue.print();
queue.insert(2);
queue.print();
queue.insert(3);
queue.print();
queue.insert(4);
queue.print();
queue.insert(5);
queue.print();
try{
System.out.println("队头:"+queue.peek());
}catch(Exception e){
System.out.println("队列为空的情况下仍试图获取队头元素!");
}
System.out.println("出队:");
while(!queue.isEmpty()){
queue.print();
try{
queue.remove();
}catch(Exception e){
System.out.println("队列为空的情况下仍试图移除队头元素!");
}
}
System.out.println("队列空吗?"+queue.isEmpty());
}
}
ArrayDeque类实现队列操作
import java.util.ArrayDeque;
import java.util.Iterator;
public class Main{
public static void print(ArrayDeque<Integer> queue){
Iterator it = queue.iterator();
while(it.hasNext()){
System.out.print(it.next()+" ");
}
System.out.println();
}
public static void main(String[] args){
ArrayDeque<Integer> queue = new ArrayDeque<Integer>();
System.out.println("入队:");
queue.addLast(1);
Main.print(queue);
queue.addLast(2);
Main.print(queue);
queue.addLast(3);
Main.print(queue);
queue.addLast(4);
Main.print(queue);
queue.addLast(5);
Main.print(queue);
System.out.println("队头:"+queue.peek());
System.out.println("出队:");
while(!queue.isEmpty()){
print(queue);
queue.remove();
}
System.out.println("队列空吗?"+queue.isEmpty());
}
}