大家好!
刚看了一段代码,不明白的是if (front<rear)这个情况什么时候成立!
希望大家给解释一下!   代码如下:
public class Queue{ 
private int  front;
private int  rear;
private int  count;
private int  capacity;
private int  capacitylncrement; private Object[] itemArray;
/*-----------------*/ //此处,我们需要无参数构造函数
public Queue() {
   front        =   0;
   rear         =   0; 
   count        =   0;
   capacity     =  2;
   capacitylncrement=2;
   itemArray = new Object[capacity];
}
  /*----------------*/ public boolean empty(){
return (count == 0);
}

  /*----------------*/ public void insert(Object newltem){
//如果itemArray没有足够的空间,
//则通过增幅扩展itemArray
if(count== capacity){
  capacity += capacitylncrement;
  Object[] tempArray = new Object[capacity];
  if (front<rear){        //如果元素位于itemArray[front:rear-1]中
    for(int i = front; i < count;i++){
tempArray[i]=itemArray[i];
}
System.out.println("woshishui");  
  } else {      //否则,将元素分成2个区间 
  for(int i = 0;i<rear;i++){
  tempArray[i]=itemArray[i]; 
  }
  for(int i = front;i<count;i++){
  tempArray[i+capacitylncrement]=itemArray[i]; 
  }
  front+=capacitylncrement;
  }  
  
  itemArray=tempArray;
  //System.out.println("nishishui");
}
itemArray[rear]=newltem;
rear=(rear+1)%capacity;
count++;
}
public void print()
{
for(int i=0;i<capacity;i++)
System.out.println(itemArray[i]);
}
public static void main(String[] args){
Queue q=new Queue();
q.insert(11);
// System.out.println(q.rear);
// System.out.println(q.count);
// System.out.println(q.capacity);
// System.out.println("########################");
q.insert(12);
// System.out.println(q.rear);
// System.out.println(q.count);
// System.out.println(q.capacity);
// System.out.println("########################");
q.insert(13);
// System.out.println(q.rear);
// System.out.println(q.count);
// System.out.println(q.capacity);
// System.out.println("########################");
q.insert(14);
q.insert(15);
q.insert(16);
q.insert(17);
q.insert(18);
q.insert(19);
q.insert(20);
q.insert(21);
q.insert(22);
q.insert(23);
q.insert(24);
q.insert(25);
q.print();
}
}