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 + -
显示快捷键?