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

📄 queue04.java

📁 已经编写好的数据结构课本程序可以减轻您的负担
💻 JAVA
字号:
// =============== Program Description ===============
// 程序名称: Queue04.java
// 程序目的: 使用“输出限制性双向队列”方式进行数据输出。
// Written By Kuo-Yu Huang. (WANT Studio.) 
// ===================================================
import ConsoleReader.*;					// 导入已定义的数据输入类

public class Queue04
{	
	public static void main (String args[])	
	{
	       	int Select;				// 选择功能变量
		OQueueArray OQueue01 = new OQueueArray();	// 限制输出队列数组
       		int i;					// 循环计数变量
       		int Value;				// 输入值变量
      		
      		for ( i=1 ; i<10 ;i++ )			// 预设数据值
      			OQueue01.AddRearQ(i);
		OQueue01.Print();
		System.out.println("");
		
      		do
      		{
		     	
      			System.out.println("(1)Input a queue data from Front");
          		System.out.println("(2)Input a queue data from Rear");
          		System.out.println("(3)Output a queue data");
	  		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();
		     			OQueue01.AddFrontQ(Value);
		     			OQueue01.Print();
		     			System.out.println("");
		     			break;
	     			case 2:
	     				System.out.print("Please input the data => ");
	     				Value = console.readInt();
		     			OQueue01.AddRearQ(Value);
		     			OQueue01.Print();
		     			System.out.println("");
		     			break;		     			
	     			case 3: 
	     				Value = OQueue01.DelQueue();
	     				OQueue01.Print();
					System.out.println("");
		     			break;
     			
	  		}
	      } while (Select != 0 );
	}
}

class OQueueArray
{
	int MaxSize = 10;
	int[] AOQueue = 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("["+AOQueue[i]+"]");
		System.out.println("");
	}

	
//--------------------------------------------
// 存入队列数据(从前端)
//--------------------------------------------
	public void AddFrontQ(int Value)
	{
   		int i;
   		
   		if (Front - 1 == 0)			// 判断是否已超出队列的最大容量
   		   System.out.println("The Queue is full!!");
   		else
   		{			
   			Front --;			// 队列结尾指针-1
   			AOQueue[Rear] = Value;		// 将数据存入队列中
   		}
	}

//--------------------------------------------
// 存入队列数据(从后端)
//--------------------------------------------
	public void AddRearQ(int Value)
	{
   		int i;
   		
   		if (Rear + 1 == MaxSize)			// 判断是否已超出队列的最大容量
   		   System.out.println("The Queue is full!!");
   		else
   		{			
   			Rear ++;			// 队列结尾指针+1
   			AOQueue[Rear] = Value;		// 将数据存入队列中
   		}
	}
		
//--------------------------------------------
// 从队列中取出数据
//--------------------------------------------
	public int DelQueue( )
	{
     		int Temp;				// 保存从队列取出来的数据

     		if ( Front == Rear )			// 判断队列是否为空
     		{
            		System.out.println("The stack is empty!!");
            		return -1;
     		}
		Front++;				// 队列开头指针+1
     		Temp = AOQueue[Front];			// 将取出的数据保存于变量中
     		
     		return Temp;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -