⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queue03.java

📁 已经编写好的数据结构课本程序可以减轻您的负担
💻 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 + -