serverrandomqueue.java

来自「软件工程实践课程的答案哦」· Java 代码 · 共 111 行

JAVA
111
字号
class ServerRandomQueue
{
	static int size;
	static ColorSet[] queue;
	static int head;
	static int rear;
	static boolean flag=false;
	
	static int[] front;//The queue head pointers for various clients
	
	static int maxSize=4;//The largest number of clients
	
	static int[] referenceCount;//The reference counter for each element in the queue
	
	public ServerRandomQueue(/*int number*/)
	{
		size = 200;
		queue = new ColorSet[size];
		head = 0;
		rear = 0;
		flag=false;
		
		//maxSize=number;
		
		front=new int[maxSize+1];
		
		for(int i=0;i<=maxSize;i++)
		   front[i]=0;
		
		referenceCount=new int[size];
	}
    
   
    
   /* public static void setMaxSize(int i)
    {
    	maxSize=i;
    }*/	
    
	public static  void enQueue(ColorSet i)
	{  if(!isFull())
	 {
	   
		queue[rear] = i;
		
		referenceCount[rear]=maxSize;
		 
	  	rear = (rear+1)%size;
	 }
	  	
	  	
	}
	
	public static boolean isFull()
	{
		if(!flag)
		  {
		  	flag=true;
		  	return false;
		  }
		  else
		      return rear==head;
	}

	public static ColorSet deQueue(int clientNumber)
	{  System.out.println("front[1]="+front[1]);
	   System.out.println("front[2]="+front[2]);
		ColorSet temp = queue[front[clientNumber]];
		
		referenceCount[front[clientNumber]]--;
		
		if(referenceCount[front[clientNumber]]==0)
		   head = (head+1)%size;
		
		front[clientNumber]=(front[clientNumber]+1)%size;
		
		
		
		
		return temp;
	}


	public static ColorSet getNext(int clientNumber)
	{
	//	System.out.println("Next BarQueue:"+queue[(head+1)%size].getColor0()+","+queue[(head+1)%size].getColor1()+","+queue[(head+1)%size].getColor2()+"," );
		ColorSet temp = queue[front[clientNumber]];
		return temp;
	}
	
	public int getQueLen()
	{
		return (rear+size-head)%size;
	}
	
/*	public static void main(String[] args)
	{
		Queue queue = new Queue();
		
		queue.enQueue(1);
		queue.enQueue(2);
		//System.out.println((queue.rear-queue.head+queue.size)%queue.size);
		
		
		//System.out.println(queue.deQueue());
		//System.out.println(queue.deQueue());
		System.out.println(queue.getQueLen());
	}
	*/

}

⌨️ 快捷键说明

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