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

📄 queue02.java

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