采用两个输入和拆分队列的方法

时间:2015-11-01 01:17:16

标签: java methods data-structures queue

我想调用此方法将队列中的一部分元素发送到队列的后面,但是当我在main中调用它时,它只显示一个空队列。 有没有更好的方法来做到这一点。

//m: the number of customers initially in line
//n: the portion of m that will be sent to the back of the queue today
public T lastCustomer(int m, int n)
{
int count;
ListNode<T> processed = new ListNode<T>(front.data);
while(rear!=null) 
{ 
  for(count=0;count< n;count++) 
{ 
  T extracted = dequeue(); 
      boolean check = enqueue(extracted); 
 if(check == true) continue; 
else break; 
}

processed.data = dequeue();
m--;
n=m/2; 
}


return processed.data;

}

1 个答案:

答案 0 :(得分:0)

你得到空队列的原因是

while(rear!=null)

结合:

processed.data = dequeue();

您出列的时间很长,因为rearnull且队列为空。 对于您的任务,您实际上并不需要m

public T lastCustomer(int n){
    T result = null;
    while(n > 0){ 
        result = dequeue(); 
        enqueue(result);//you probably don't need to check the result(depends on your implementation)
        n--;
    }
    return result
}

这应该做的工作

编辑:忘了n--;

编辑:合理化变量