📄 queue03.java
字号:
// =============== Program Description ===============
// 程序名称: Queue03.java
// 程序目的: 使用“输入限制性双向队列”方式进行数据输出。
// Written By Kuo-Yu Huang. (WANT Studio.)
// ===================================================
import ConsoleReader.*; // 导入已定义的数据输入类
public class Queue03
{
public static void main (String args[])
{
int Select; // 选择功能变量
IQueueArray IQueue01 = new IQueueArray(); // 限制输入队列数组
int i; // 循环计数变量
int Value; // 输入值变量
for ( i=1 ; i<10 ;i++ ) // 预设数据值
IQueue01.AddIQueue(i);
IQueue01.Print();
System.out.println("");
do
{
System.out.println("(1)Input a queue data");
System.out.println("(2)Output a queue data from Front");
System.out.println("(3)Output a queue data from Rear");
System.out.println("(0)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();
IQueue01.AddIQueue(Value);
IQueue01.Print();
System.out.println("");
break;
case 2:
Value = IQueue01.DelFrontQ();
IQueue01.Print();
System.out.println("");
break;
case 3:
Value = IQueue01.DelRearQ();
IQueue01.Print();
System.out.println("");
break;
}
} while (Select != 0 );
}
}
class IQueueArray
{
int MaxSize = 10;
int[] AIQueue = new int[MaxSize]; // 声明限制输入队列数组
int Front = -1; // 队列开头
int Rear = -1; // 队列结尾
//--------------------------------------------
// 输出队列数据
//--------------------------------------------
public void Print()
{
int i; // 循环计数变量
System.out.print("The Input Restricted Queue Content:");
for ( i=Front+1 ; i<Rear+1 ; i++ )
System.out.print("["+AIQueue[i]+"]");
System.out.println("");
}
//--------------------------------------------
// 存入队列数据
//--------------------------------------------
public void AddIQueue(int Value)
{
int i;
if (Rear + 1 == Front) // 判断是否已超出队列的最大容量
System.out.println("The Circle Queue is full!!");
else
{
Rear ++; // 队列结尾指针+1
AIQueue[Rear] = Value; // 将数据存入队列中
}
}
//--------------------------------------------
// 从队列中取出数据(从前端)
//--------------------------------------------
public int DelFrontQ( )
{
int Temp; // 保存从队列取出来的数据
if ( Front == Rear ) // 判断队列是否为空
{
System.out.println("The stack is empty!!");
return -1;
}
Front++; // 队列开头指针+1
Temp = AIQueue[Front]; // 将取出数据保存于变量中
return Temp;
}
//--------------------------------------------
// 从队列中取出数据(从后端)
//--------------------------------------------
public int DelRearQ( )
{
int Temp; // 暂存从队列取出来的数据
if ( Front == Rear ) // 判断队列是否为空
{
System.out.println("The stack is empty!!");
return -1;
}
Temp = AIQueue[Rear]; // 将取出数据暂存于变量中
Rear--; // 队列结尾指针-1
return Temp;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -