📄 queue02.java
字号:
// =============== Program Description ===============
// 程序名称: Queue02.java
// 程序目的: 利用数组结构建立循环队列
// Written By Kuo-Yu Huang. (WANT Studio.)
// ===================================================
import ConsoleReader.*; // 导入已定义的数据输入类
public class Queue02
{
public static void main (String args[])
{
int Select; // 选择功能变量
CQueueArray CQueue01 = new CQueueArray(); // 循环队列数组
int i; // 循环计数变量
int Value; // 输入值变量
for ( i=1 ; i<10 ;i++ ) // 预设数据值
CQueue01.AddCQueue(i);
CQueue01.Print();
System.out.println("");
do
{
System.out.println("(1)Input a circle queue data");
System.out.println("(2)Output a circle queue data");
System.out.println("(3)Exit");
System.out.print("Please select one => ");
ConsoleReader console = new ConsoleReader(System.in);
Select = console.readInt();
switch (Select) // 判断选择的功能
{
case 1:
System.out.print("Please input the data => ");
Value = console.readInt();
CQueue01.AddCQueue(Value);
CQueue01.Print();
System.out.println("");
break;
case 2:
Value = CQueue01.DelCQueue();
CQueue01.Print();
System.out.println("");
break;
}
} while (Select !=3);
}
}
class CQueueArray
{
int MaxSize = 10;
int[] ACQueue = new int[MaxSize]; // 声明双向队列数组
int Front = -1; // 队列开头
int Rear = -1; // 队列结尾
//--------------------------------------------
// 输出队列数据
//--------------------------------------------
public void Print()
{
int i; // 循环计数变量
System.out.print("The Circle Queue Content:");
if ( Front < Rear )
{
for ( i=Front+1 ; i<Rear+1 ; i++ )
System.out.print("["+ACQueue[i]+"]");
}
else
{
for ( i=Front+1 ; i<MaxSize ; i++ )
System.out.print("["+ACQueue[i]+"]");
for ( i=0 ; i<Rear+1 ; i++ )
System.out.print("["+ACQueue[i]+"]");
}
System.out.println("");
}
//--------------------------------------------
// 存入队列数据
//--------------------------------------------
public void AddCQueue(int Value)
{
int i;
if (Rear + 1 == Front) // 判断是否已超出队列的最大容量
System.out.println("The Circle Queue is full!!");
else
{
Rear = (Rear + 1) % MaxSize; // 队列结尾指针+1
ACQueue[Rear] = Value; // 将数据存入队列中
}
}
//--------------------------------------------
// 从队列中取出数据
//--------------------------------------------
public int DelCQueue( )
{
int Temp; // 保存从队列取出来的数据
if ( Front == Rear ) // 判断队列是否为空
{
System.out.println("The stack is empty!!");
return -1;
}
Front = (Front + 1) % MaxSize; // 队列开头指针+1
Temp = ACQueue[Front]; // 将取出数据保存于变量中
return Temp;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -