题目:基于ArrayList的类来实现队列的相关操作,包括判断队列元素是否为空、元素入队列、出队列、返回队列末端及顶端元素等操作;请注意充分利用ArrayList本身的特性来完成相关函数。
package package1;
import java.util.*;
class Queue {
ArrayList<Object> qlist = new ArrayList<>();
Queue() {
}
// 元素入队
public void push(Object o) {
qlist.add(o);
}
// 元素出队
public Object pop() {
if (qlist != null && qlist.size() > 0) {
Object o = qlist.get(0);
qlist.remove(0);
return o;
}
return null;
}
// 返回队尾元素
public Object getEnd() {
return qlist.get(getQSize() - 1);
}
// 返回队头元素
public Object getHead() {
return qlist.get(0);
}
// 判断队列元素是否为空
public boolean isQEmpty() {
return qlist.isEmpty();
}
// 输出队列内元素个数
public int getQSize() {
return qlist == null ? 0 : qlist.size();
}
// 遍历
public void traverse() {
System.out.print("队列为:");
for (Object o : qlist) {
System.out.print(o + " ");
}
System.out.println();
}
}
public class QueueAL {
public static void main(String[] args) {
Queue q = new Queue();
Scanner input = new Scanner(System.in);
display();
int con = 1;
do{
int choice = input.nextInt();
switch (choice) {
case 1:
System.out.println("请输入要入队的元素:");
Integer value = input.nextInt();
q.push(value);
q.traverse();
display();
break;
case 2:
if (!q.isQEmpty()) {
q.pop();
q.traverse();
} else
System.out.println("队列为空");
display();
break;
case 3:
System.out.println("队列尾元素为 " + q.getEnd());
display();
break;
case 4:
System.out.println("队列头元素为 " + q.getHead());
display();
break;
case 5:
System.out.println("共有 " + q.getQSize() + " 个元素");
display();
break;
case 6:
if (q.isQEmpty())
System.out.println("队列为空!");
else
System.out.println("队列非空!");
display();
break;
case 0:
System.exit(0);
}
}while(con != 0);
input.close();
}
public static void display() {
System.out.println("------菜 单---------------");
System.out.println("------1:入队-------------------------");
System.out.println("------2:出队-------------------------");
System.out.println("------3:返回队尾元素-----------------");
System.out.println("------4:返回队头元素-----------------");
System.out.println("------5:输出队列内元素个数-----------");
System.out.println("------6:判断队列中是否为空-----------");
System.out.println("------0:退出-------------------------");
System.out.println("请选择:");
}
}
运行结果示例: