队列基本操作(初始化、入队、出队)的java代码实现(使用数组模拟队列,实现队列的初始化、入队、出队操作)

发布于:2021-10-28 06:43:50

Queue类:

1、定义队列
2、使用带参构造初始化队列
3、成员方法定义入队出队操作


public class Queue {

int maxSize;//队列最大容量
int rear;//模拟队尾头指针
int front;//模拟队列头指针
Object[] array; //使用数组模拟队列

/**
* 队列初始化
* @param maxSize 队列最大容量
* @return
*/
public Queue(int maxSize) {
rear = -1;
front = -1;
this.maxSize = maxSize;
this.array = new Object[maxSize];
}


/**
* 入队方法
* @param e 入队元素
* @return
*/
public boolean enQueue(int e) {
if(rear>=maxSize-1) {
System.out.println("队满,入队失败!");
return false;
}else {
rear++;//指针后移
array[rear] = e;//存入元素,入队
}
return true;

}
/**
* 出队方法
* @return
*/
public Object deQueue() {
if(front==rear) {
System.out.println("队空,出队失败!");
throw new RuntimeException("队空!");
}else {
front++; //指针后移,出队
}
Object obj = array[front];//暂存出队元素
array[front] = null;
return obj;

}

/**
* 重写toString 用于格式化输出队列
*/
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("队首<");
for(int i=0;i<10;i++) {
sb.append(array[i]);
if(i==9)
continue;
sb.append("~");
}
sb.append("<队尾");
String s = ""+sb;
return s;
}

}



测试类

public class Test {
public static void main(String[] args) {

Queue queue = new Queue(10);
//入队6个元素
for(int i = 0;i<6;i++) {
queue.enQueue(i);
}
//输出队列
System.out.println("入队后队列状态:"+queue);
//出队两个元素
Object e1 = queue.deQueue();
Object e2 = queue.deQueue();
//输出出队的元素
System.out.println("出队元素:"+e1+","+e2);
//输出出队操作后的队列
System.out.println("出队后队列状态:"+queue);

}
}

相关推荐

最新更新

猜你喜欢