队列
* 可用 数组 和 链表 实现
* 队列本身是有序列表,先入先出
* 队列的输出、输入:变量front与rear分别记录队列前后端下标。
* front随着数据的输出而改变,rear随着数据的输入而改变
一、[x]数组模拟队列
1. 思路分析
* 将尾指针往后移: rear+1,当front==rear 【空】·
* 若尾指针rear小于队列的最大下标maxSize-1,则将数据存入rear所指的数组元素中,否则无法存入数据。rear == maxSize-1[队列满]
2.判断队列空与满的条件
(1)、队列为空:front == rear
(2)、队列为满:rear == maxSize-1
3.代码实现
import java.util.Scanner;
public class ArrayQueneDemo {
public static void main(String[] args) {
ArrayQuene array = new ArrayQuene(3); //创建类数组
char key = ' ';
Scanner sc = new Scanner(System.in);
boolean result = true;
while(result) {
System.out.println("s(show):显示队列");
System.out.println("a(add):添加数组到队列");
System.out.println("g(get):从队列中取出数据");
System.out.println("h(head):查看队列头部数据");
System.out.println("e(exit):退出程序");
key = sc.next().charAt(0);//接受一个字符
switch (key) {
case 's': {
array.showQuene(); //调用类函数
break;
}
case 'e': {
result=false;
System.out.println("退出成功!");
break;
}
case 'a': {
System.out.println("输入要添加的值");
int value = sc.nextInt();
array.addQuene(value);
break;
}
case 'g': {
//通过try...catch..抓取抛出异常时产生的原因,并不会终止程序的进行
try {
int get = array.getQuene();
System.out.printf(